Tag: wpf

WPF ListView:更改ItemsSource不会更改ListView

我使用ListView控件来显示一些数据行。 有一个后台任务接收列表内容的外部更新。 新接收的数据可能包含更少,更多或相同数量的项目,并且项目本身也可能已更改。 ListView.ItemsSource绑定到OberservableCollection(_itemList),因此对于_itemList的更改也应该在ListView可见。 _itemList = new ObservableCollection(); _itemList.CollectionChanged += new NotifyCollectionChangedEventHandler(OnCollectionChanged); L_PmemCombList.ItemsSource = _itemList; 为了避免刷新完整的ListView,我将新检索的列表与当前_itemList进行简单比较,更改不相同的项目,并在必要时添加/删除项目。 集合“newList”包含新创建的对象,因此替换_itemList中的项正确发送“刷新”通知(我可以使用ObservableCollection的事件处理程序OnCollectionChanged进行记录) Action action = () => { for (int i = 0; i replace if changed if (i add items else _itemList.Add(newList[i]); } // new list contains less items -> remove items for (int i = _itemList.Count – 1; […]

“没有找到适合完成此操作的成像组件。”

我编写了一个应用程序,它需要下载* .png文件并将其设置为WPF按钮的背景。 所以,当我运行这个程序时,它面临错误 没有找到适合完成此操作的成像组件。“ 我的代码如下: 第一个应用程序使用WebClient类的对象下载文件: System.Net.WebClient wClient = new System.Net.WebClient(); Uri downloadUri = new Uri(MyUri, UriKind.Absolute); wClient.DownloadFileAsync(downloadUri, “MyImage.png”); wClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(wClient_DownloadFileCompleted); 当下载完成事件发生时: ImageBtn.Dispatcher.Invoke(new Action(() => { ImageBrush ib = new ImageBrush(); BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri(“MyImage.png”, UriKind.Relative); bi.EndInit(); ib.ImageSource = bi; ImageBtn.Background = ib; } 注意由于在BackgroundWorker中运行这些代码块,我使用Dispatcher来设置按钮Background属性 所以,当我运行程序时, System.NotSupportedException发生如下: […]

在XAML中使用boolean到颜色转换器

我正在研究WPF应用程序。我已将文本块绑定到我的按钮。 当关联按钮的isEnabled为true时,我想将文本块的前景设置为黑色。 我想用转换器来做这件事。 但它不起作用 。 也没有给出任何错误。 我在“Models”文件夹中声明了以下类。 public class BrushColorConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if ((bool)value) { { return System.Windows.Media.Colors.Black; } } return System.Windows.Media.Colors.LightGreen; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } Button的启用,可从viewmodel更改属性 (例如,使用RaiseCanExecuteChanged)()) XAML中与textblock相关的东西是: (!..all […]

wpf中的button1.PerformClick()

为什么WPF中的这段代码不起作用? private void button1_Click(object sender, EventArgs e) { MessageBox.Show(“yes”); } private void Form1_Load(object sender, EventArgs e) { button1.PerformClick(); } 我需要命令。

在杀死TabletKeyboard(TabTip.exe)应用程序的过程后,在wpf中没有恢复到原来的大小

我有一个运行在Windows 8平板电脑上的wpf应用程序。 并且当焦点在任何TextBox上时,为了键入键盘。 我正在调用TabTip.exe进程来显示键盘,当键盘显示时我的应用程序缩小了。 在所有操作之后,有一个保存按钮。 当我单击保存按钮时,键盘应该消失,我的应用程序应该恢复到原始大小。 我正在杀死进程TabTip.exe以关闭键盘,但应用程序将不会重新调整其原始大小。 我试过了: if (process.ProcessName == “TabTip”) { Application.Current.MainWindow.VerticalAlignment = VerticalAlignment.Stretch; process.Kill(); Application.Current.MainWindow.Height = SystemParameters.WorkArea.Height; Application.Current.MainWindow.Width = SystemParameters.WorkArea.Width; Application.Current.MainWindow.WindowState = WindowState.Normal; Application.Current.MainWindow.WindowState = WindowState.Maximized; break; } 有人知道在杀死TabTip.exe后将应用程序恢复到原始大小吗?

多个ItemsSource集合绑定

如何将不同类型的多个集合绑定到ItemsControl的ItemsSource? 使用单个绑定工作正常: 但是当我尝试使用CompositeCollection时,不会显示Foo中的项目:

如何通过ViewModel更改VisualState

我知道这个问题类似于很多。 无论如何,我不明白。 我有几个VisualStates (超过2个,这就是为什么DataStateBehavior不是我的解决方案)。 我有ViewModel,它具有枚举属性CurrentState 。 每个枚举值代表一个状态,也可能是几个枚举值代表一个状态,不符合。 我希望当CurrentState改变时改变了VisualState (想到,我脑子里立刻出现了: Binding是为这种情况准确创建的! ) 我可以将CurrentState与视图VisualState (仅限xaml解决方案)绑定,以获得上述行为吗? 如果是,我该怎么办? 如果不是,我应该如何在我的ViewModel中使用VisualStateManager.GoToState()方法?

简单的WPFcomboboxfilter

我搜索谷歌寻求一个简单的解决方案,但没有运气。 我有一个标准的WPFcombobox,我只希望能够根据用户在combobox具有焦点时键入的前2或3个字母来过滤显示的列表。 我尝试了一些编码,包括一些lamba表达式,但错误“System.NotSupportedException”不断被抛出指定“combobox.Items.Filter”的行。 我没有使用MVVM,只是希望这个简单的function可供用户使用。 请帮忙! PS IsEditable,IsTextSearchEnabled和StaysOpenOnEdit属性设置为true,但尚未实现所需的function。

是否可以将WPF窗口打包为COM对象

我正在尝试使用旧版c ++非托管gtk gui应用程序中的WPF窗口。 是否可以打包WPF窗口(包括xaml文件)并在c ++ gui应用程序中将其用作常规com对象。 您是否预见到这种方法存在任何问题或问题? 如果可能的话,任何链接或教程或任何有关如何操作的建议将非常有帮助。 谢谢。

在WPF中从窗口中删除控件

如何从WPF中的窗口中删除控件? RemoveLogicalChild仅将其作为逻辑子项删除,但仍保持可见状态。