Tag: wpf

WPF中的INotifyPropertyChanged

尝试了解WPF。 这是我的测试类: public partial class MainWindow : Window, INotifyPropertyChanged { private ObservableCollection _myList = new ObservableCollection(); public ObservableCollection MyList { get { return _myList; } set { _myList = value; RaisePropertyChanged(“_myList”); } } public MainWindow() { InitializeComponent(); comboBox1.DataContext = _myList; } private void button1_Click(object sender, RoutedEventArgs e) { MyList = AnotherClass.SomeMethod(); } public event PropertyChangedEventHandler […]

WPF中TextBox中的ScrollToCaret在哪里?

我找不到那个function。 基本上我有一个多行文本框,当我执行搜索时,我突出显示结果。 但是如果结果不在视图中,我将不得不手动向下滚动,直到找到突出显示的结果,这超出了“查找”function的目的。 我不想使用RichTextBox,因为我遇到了一些性能问题。

拉伸网格到窗口大小

我刚开始用一个基本的空项目学习C#WPF,我想制作一个带有背景图像的网格,它正好在窗口上延伸。 现在的方式,网格延伸,但不是我想要的方式。 例如我的背景图像是1000x1000px,我的窗口大小是1700x1200px,因此网格延伸到1200x1200px(它保持图像的宽高比。我不想要这个,我希望它只是伸展整个窗口。 这是我的代码: Connect 任何帮助都会很棒,谢谢。

如何在WPF中创建可绑定属性?

我有一个用户控件。 我想在我的用户控件中创建一个可绑定的属性。 我创建一个DependencyProperty如下: public static readonly DependencyProperty DateProperty = DependencyProperty.Register(“Date”, typeof(DateTime), typeof(DaiesContainer), new UIPropertyMetadata(DateTime.Now)); public DateTime Date { get { return (DateTime)GetValue(DateProperty); } set { SetValue(DateProperty, value); } } 然后我在我的XAML中使用它: 在我的ViewModel中,调用Date属性的get方法。 但在我的用户控件中,Date属性未设置为值。

是否可以将非特殊文件夹用作FolderBrowserDialog的根文件夹?

FolderBrowserDialog.RootFolder属性仅限于Environment.SpecialFolder枚举器中定义的特殊文件夹。 但是在我的应用程序中,我们需要显示此对话框,但根路径需要是可配置的,并且通常是自定义文件夹,与枚举器中的任何特殊文件夹无关。 如何显示将根分配给自定义文件夹的文件夹浏览器? 也许使用RootFolder属性是不可能的,但是可以通过其他方式获得相同的效果(即用户无法在根文件夹之外查看或选择)。 在这个答案中 ,有人暗示可能使用reflection操作,但没有更新。 知道这在.NET中是否可行?

集合属性应该是只读的

我使用FxCop作为我的WPF MVVM程序集,它给了我错误 集合属性应该是只读的 但是在我的属性中我需要RaisePropertyChangedEvent,现在如果我通过删除它的set部分将该属性设置为只读,我怎么能引发这个事件。 语法有点像这样 public List Employees { get { return _employees; } set { if (ReferenceEquals(_employees, value)) return; _employees = value; RaisePropertyChanged(“Employees”); } }

安装应用程序后,拖放不再起作用

我有一个具有拖放function的应用程序来导入图像和video。 在开发和通过Visual Studio进行测试时,这从未给出任何问题。 通过设置项目安装后,应用程序中的所有内容都可以正常工作,除了拖放操作,这似乎什么都不做。 是否需要通过安装程序设置任何安全设置,或者安装后可能阻止拖放的那种性质?

Silverlight中的动态图像源绑定

我想根据ChildWindow DataContext设置图像的源。 这是XAML文件: … … 如果我覆盖ChildWindow的Show方法并设置图像的源,它工作正常: public new void Show() { DialogIcon.Source = new BitmapImage(new Uri(@”/Images/DialogWindow/Confirm.png”, UriKind.Relative)); base.Show(); } 但它看起来很丑陋而且不是“silverlight方式”,所以我决定改变: 你看我注册了一个DialogIconConverter来绑定DataContext的源代码。 public class DialogIconConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { //currently it’s an hard-coded path return new BitmapImage(new Uri(@”/Images/DialogWindow/Confirm.png”, UriKind.Relative)); } … } 但它现在不能正常工作,我在这个控件中有几个其他转换器工作正常。 只有这一个不起作用。 你能帮忙找出问题所在吗? 编辑: […]

为什么我的ObservableCollection序列化不起作用?

我正在尝试序列化和反序列化此ObservableCollection: public class DataCollection : ObservableCollection { } public class Data : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private bool? _enabled; public string Name { get; set; } public bool? Enabled { get { return _enabled; } set { _enabled = value; NotifyPropertyChanged(“Enabled”); } } public Data(string name, bool? enabled) { this.ScriptName = name; this.Enabled […]

内部具有不同方向的WPF虚拟化TreeView不虚拟化?

我在XAML中有一个包含多个图层的TreeView 。 使用此解决方案,我可以为每个不同的层获取XAML配置的外观,并确认它是UI虚拟化。 但是,当我将特定图层的VirtualizingStackPanel切换为具有不同的Orientation (无论是通过此解决方案的代码,还是使用Snoop无关紧要)时,UI虚拟化将关闭, TreeViewItem将尽快实现所有TreeViewItem随着我扩展该层。 在研究这种行为时,我注意到在您进入MeasureOverride函数时,在VirtualizingStackPanel的参考源中,您可以在第2116行找到此注释 : 如果此面板的方向不同(sic)其父级或后代,则进行计算 在这种情况下,微软似乎故意禁用了UI虚拟化。 所以我有两个问题: 为什么层之间的方向一致性很重要? 如何让UI虚拟化与具有不同方向的TreeView一起使用?