Tag: wpf

加载WPF MVVM焦点字段

我有一个视图,它下面有一个单独的TextBox和一对Button 。 当窗口加载时,我希望TextBox有焦点。 如果我不使用MVVM,我只需要在Loaded事件中调用TextBox.Focus() 。 然而,我的ViewModel不知道我的看法,所以我怎么能做到这一点,而不是把代码放到我的视图的代码隐藏? 编辑:在阅读答案后,我决定把这个代码在视图xaml <DockPanel FocusManager.FocusedElement="{Binding ElementName=MessageTextBox}"> <TextBox Name="MessageTextBox" Text="{Binding Message}"/> </DockPanel> 如果这不是初始页面焦点,我可能会推荐Jon Galloway的答案,因为它可以从ViewModel控制。

WPF有一个本地文件对话框?

在System.Windows.Controls ,我可以看到一个PrintDialog但是,我似乎无法find一个本地的FileDialog 。 我是否需要创build一个对System.Windows.Forms的引用还是有另一种方法?

在WPF窗口中获取当前的焦点元素/控件

我如何从代码中获取WPF中的当前焦点元素/控件,这些代码既不是窗口也不是用户控件的一部分?

什么时候应该使用WPF 4.0中的SnapsToDevicePixels?

任何人都可以build议什么时候使用WPF 4.0中的SnapsToDevicePixels指南? 是否应该只在有问题的情况下偶尔使用,在整个应用程序中,只在某些控件上或者什么?

通过WPF中的代码隐藏访问资源

我有一个自定义集合在我的窗口资源中定义如下(在一个Sketchflow应用程序,所以窗口实际上是一个UserControl): <UserControl.Resources> <ds:MyCollection x:Key="myKey" x:Name="myName" /> </UserControl.Resources> 我希望能够在代码隐藏中引用这个集合,我期望这个集合是由x:Name组成,但是我似乎无法访问它。 我可以使用它的参考 myRef = (MyCollection) this.FindName("myKey"); 但是这看起来很骇人听闻。 这是不好的做法,什么会更好? 谢谢 :)

默认值types与该属性的types不匹配

我有这个class public class Tooth { public string Id {get;set;} } 并且这个custrom控制 public partial class ToothUI : UserControl { public ToothUI() { InitializeComponent(); } public Tooth Tooth { get { return (Tooth)GetValue(ToothProperty); } set { SetValue(ToothProperty, value); NombrePieza.Text = value.Id.Replace("_",String.Empty); } } public static readonly DependencyProperty ToothProperty = DependencyProperty.Register("Tooth", typeof(Tooth), typeof(ToothUI), new PropertyMetadata(0)); } 我的问题是添加牙齿依赖属性后 ,这个错误发生 […]

在C#WPF中,为什么我的TabControl的SelectionChanged事件经常发射?

我有一个选项卡式GUI,每个选项卡包含一个框架。 在其中一个框架中有一个DataGrid。 当用户select这个选项卡,我需要我的数据网格sorting,所以我使用TabControl SelectionChanged事件触发sorting。 但是,每次从DataGrid中select一个项目时都会触发此事件,即使这些标签本身保持不变。 我已经尝试了多个不同的事件:GotFocus为TabItem的一个TabItem的RequestBringIntoView 但他们似乎都受到这个问题的困扰。 这是什么原因造成的?

从后面的代码调用命令

所以我一直在四处搜寻,找不到如何做到这一点。 我正在创build一个使用MVVM的用户控件,并希望在“Loaded”事件上运行一个命令。 我意识到这需要一点点的代码,但我不能完全弄清楚需要什么。 该命令位于ViewModel中,它被设置为视图的datacontext,但我不确定如何路由这个,所以我可以从加载的事件后面的代码调用它。 基本上我想要的是这样的… private void UserControl_Loaded(object sender, RoutedEventArgs e) { //Call command from viewmodel } 环顾四周,我似乎无法find任何地方的语法。 我是否需要先绑定xaml中的命令才能引用它? 我注意到在用户控件中的命令绑定选项不会让你绑定的命令,因为你可以在像一个button的东西… <UserControl.CommandBindings> <CommandBinding Command="{Binding MyCommand}" /> <!– Throws compile error –> </UserControl.CommandBindings> 我确信有一个简单的方法来做到这一点,但我不能为我的生活弄清楚。

WPF列表框为空的数据模板

我想知道人们如何处理没有项目的ListBox控件? 例如,我想绑定一个search结果列表,但如果没有find结果,我想显示“找不到结果”。 我目前解决这个问题的方法是,如果结果集计数= 0,则隐藏列表框,并显示带有“未find结果”消息的标签。 理想情况下,我想像ASP .NET datagrid EmptyTemplate解决scheme。 干杯

WPF添加一个边框到一个TextBlock

是否可以添加一个边框到文本块。 我需要在代码下面的setter属性中添加它: <Style x:Key="notCalled" TargetType="{x:Type TextBlock}"> <Setter Property="Margin" Value="2,2,2,2" /> <Setter Property="Background" Value="Transparent" /> </Style>