Questions tagged «wpf»

Windows Presentation Foundation或WPF是用于在基于Windows的应用程序中呈现用户界面的子系统。


6
WPF数据绑定和验证规则最佳实践
我有一个非常简单的WPF应用程序,其中使用了数据绑定以允许编辑某些自定义CLR对象。现在,我想在用户单击保存时添加一些输入验证。但是,我读过的所有WPF书籍都没有真正花任何时间解决这个问题。我看到您可以创建自定义的ValidationRules,但是我想知道这是否对我的需求来说是过大的。 所以我的问题是:在某处是否有一个好的示例应用程序或文章展示了验证WPF中用户输入的最佳实践?

10
如何将新行放入wpf TextBlock控件中?
我正在从XML文件中获取文本,我想插入一些由textblock渲染解释为新行的新行。 我试过了: <data>Foo bar baz \n baz bar</data> 但是,数据仍然显示而没有换行。我通过C#<data>通过.Text属性设置了内容。 为了使它在GUI中呈现新行,我需要放入XML中的什么? 我已经尝试过在XAML中手动设置文本的方法: <TextBlock Margin="0 15 0 0" Width="600"> There 
 is a new line. </TextBlock> 而且虽然编码的字符没有出现在GUI中,但它也没有给我换行。
101 c#  wpf  newline  textblock 

13
从Alt-Tab程序切换器隐藏窗口的最佳方法?
我已经成为.NET开发人员数年了,但这仍然是我不知道如何正确执行的事情之一。通过Windows窗体和WPF中的属性从任务栏隐藏窗口很容易,但是据我所知,这不能保证(或什至影响)它从Alt+ ↹Tab对话框中被隐藏。我已经看到不可见的窗口显示在Alt+中↹Tab,而我只是想知道什么是最好的方法来确保一个窗口永远不会在Alt+ ↹Tab对话框中出现(可见或不可见)。 更新:请在下面查看我发布的解决方案。我不允许将自己的答案标记为解决方案,但到目前为止,这是唯一可行的方法。 更新2:弗朗西·佩诺夫(Franci Penov)现在提供了一个适当的解决方案,看起来不错,但我自己还没有尝试过。涉及一些Win32,但避免了创建不合时宜的屏幕外窗口的麻烦。
101 .net  wpf  winforms  alt-tab 

2
WPF代码中的自动高度
如何Height在C#代码中将WPF控件的属性值设置为“ Auto”? <Grid.RowDefinitions> <RowDefinition /> <RowDefinition Height="Auto" /> <RowDefinition /> <RowDefinition Height="Auto" /> <RowDefinition /> <RowDefinition Height="Auto" /> <RowDefinition /> <RowDefinition Height="Auto" /> <RowDefinition /> </Grid.RowDefinitions> 我想在后面的代码中重现此行为。有任何想法吗?
101 c#  wpf  xaml 


9
在WPF中等效的NumericUpDown好吗?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 改善这个问题 我在WPF中寻找一个简单的NumericUpDown(又称数字微调器)控件。这似乎是WPF中另一个缺少控制的地方。那里肯定有一些现有的,我不喜欢重新发明轮子。


9
如何创建具有NAMED内容的WPF用户控件
我有一组带有附加命令和逻辑的控件,它们以相同的方式不断重复使用。我决定创建一个包含所有通用控件和逻辑的用户控件。 但是,我还需要控件能够容纳可以命名的内容。我尝试了以下方法: <UserControl.ContentTemplate> <DataTemplate> <Button>a reused button</Button> <ContentPresenter Content="{TemplateBinding Content}"/> <Button>a reused button</Button> </DataTemplate> </UserControl.ContentTemplate> 但是,似乎无法放置在用户控件内的任何内容。例如,如果我以以下方式使用控件: <lib:UserControl1> <Button Name="buttonName">content</Button> </lib:UserControl1> 我收到以下错误: 无法在元素“按钮”上设置名称属性值“ buttonName”。“按钮”在元素“ UserControl1”的范围内,当在另一个范围内定义该元素时,该名称已经注册了名称。 如果删除buttonName,它将进行编译,但是我需要能够命名内容。我该如何实现?
100 c#  wpf  xaml  user-controls  controls 

2
枚举数据触发更改图像
我有一个带有固定背景图像的按钮,并想在其顶部显示一个小的覆盖图像。选择哪个覆盖图像取决于LapCounterPingStatus相应视图模型的依赖项属性()。 这是我到目前为止所得到的: <Button> <Grid> <Image Stretch="None"> <!-- Background Image --> <Image.Style> <Style TargetType="{x:Type Image}"> <Setter Property="Source" Value="/Images/Pingn.png"/> </Style> </Image.Style> </Image> <Image Stretch="None" Panel.ZIndex="1"> <!-- Small Overlay Image --> <Image.Style> <Style TargetType="{x:Type Image}"> <Style.Triggers> <DataTrigger Binding="{Binding Path=LapCounterPingStatus}" Value="PingStatus.PING_UNKNOWN"> <Setter Property="Source" Value="/Images/RefreshOverlayn.png"/> </DataTrigger> <DataTrigger Binding="{Binding Path=LapCounterPingStatus}" Value="PingStatus.PING_FAILURE"> <Setter Property="Source" Value="/Images/ErrorOverlayn.png"/> </DataTrigger> <DataTrigger …
100 c#  wpf 

4
WPF命令行
我正在尝试创建一个采用命令行参数的WPF应用程序。如果未提供任何参数,则应弹出主窗口。对于某些特定的命令行参数,代码应在没有GUI的情况下运行,并在完成时退出。任何有关如何适当地做到这一点的建议将不胜感激。
99 wpf  command-line  exit 

5
WPF:如何以原始尺寸显示图像?
我在WPF中显示图像时遇到问题。 这是我的代码: <Button HorizontalAlignment="Left" Grid.Column="1" Grid.Row="5" Margin="0,5"> <Button.Content> <StackPanel Orientation="Horizontal" Margin="10,0"> <Image Source="/images/user_add.png" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" Width="24" Height="24" /> <TextBlock Text="添加" /> </StackPanel> </Button.Content> </Button> 我有一个原始尺寸为32 * 32的图像,但是当我运行上述代码时,该图像将拉伸以填充所有空间,超出其原始尺寸。我也将“ Stretch”属性设置为“ None”,但似乎不起作用。 那么,如何解决此问题?谢谢!
98 wpf  image  resize  size 

3
在后面的代码中更改Canvas.Left属性?
我的XAML中有一个矩形,想Canvas.Left在后面的代码中更改其属性: <UserControl x:Class="Second90.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300" KeyDown="txt_KeyDown"> <Canvas> <Rectangle Name="theObject" Canvas.Top="20" Canvas.Left="20" Width="10" Height="10" Fill="Gray"/> </Canvas> </UserControl> 但这不起作用: private void txt_KeyDown(object sender, KeyEventArgs e) { theObject.Canvas.Left = 50; } 谁知道这样做的语法是什么?

23
如何对可观察的集合进行排序?
我有以下课程: [DataContract] public class Pair<TKey, TValue> : INotifyPropertyChanged, IDisposable { public Pair(TKey key, TValue value) { Key = key; Value = value; } #region Properties [DataMember] public TKey Key { get { return m_key; } set { m_key = value; OnPropertyChanged("Key"); } } [DataMember] public TValue Value { get { …

5
在列中单击按钮,获取它来自Click事件处理程序的行
我已经将WPF Datagrid的itemsource设置为从DAL返回的对象列表。我还添加了一个额外的列,其中包含一个按钮,下面是xaml。 <toolkit:DataGridTemplateColumn MinWidth="100" Header="View"> <toolkit:DataGridTemplateColumn.CellTemplate> <DataTemplate> <Button Click="Button_Click">View Details</Button> </DataTemplate> </toolkit:DataGridTemplateColumn.CellTemplate> </toolkit:DataGridTemplateColumn> 这很好。但是,在Button_Click方法上,有什么方法可以让我在按钮所在的数据网格上获取行?更具体地说,我对象的属性之一是“ Id”,我希望能够将其传递到事件处理程序中另一种形式的构造函数中。 private void Button_Click(object sender, RoutedEventArgs e) { //I need to know which row this button is on so I can retrieve the "id" } 也许我在xaml中需要一些额外的东西,或者我正在以一种回旋的方式来解决这个问题?任何帮助/建议表示赞赏。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.