Tag: wpf

WPF ListBox没有使用ItemsSource更新

我认为在WPF设置中应该是简单的双向数据绑定,但是当集合发生变化时,列表框(目标)不会更新。 我正在以编程方式设置ListBox的ItemsSource: lstVariable_Selected.ItemsSource = m_VariableList; ListBox声明如下: 当我最初设置ItemsSource时,ListBox(当时不可见)获取其项目集。 但是,如果我查看ListBox,那么更新似乎就此停止了。 然后我可以从m_VariableList集合中删除一个项目,它不会从ListBox中消失。 同样,如果我添加一个,它就不会出现。 是什么赋予了?

如何以编程方式将“运行”分配给文本属性?

我知道在XAML中我们可以做到…… This is my text My big bold text 问题是,如何以编程方式将Run分配给文本(字符串)属性?

在’System.Windows.Controls.Button’的名称范围内找不到名称

我的Button有以下Template … … 问题是Storyboard.TargetName=”col1″ col1没有拾取Storyboard.TargetName=”col1″ 。 我收到错误: An unhandled exception of type ‘System.InvalidOperationException’ occurred in PresentationFramework.dll Additional information: ‘col1’ name cannot be found in the name scope of ‘System.Windows.Controls.Button’. 我认为这可能与我正在使用Items Control这一事实有关…我认为col1会被尝试在任何包含元素中找到。 我不知道如何解决这个问题。 任何帮助将不胜感激!

类似excel的行为wpf文本框

我想创建e文本框,文本绑定一个整数(例如123456789),但它显示千位分隔符(例如123.456.789),但是当我选择文本框进行编辑时,字符串返回没有分隔符,直到文本框失去焦点,就像在excel中一样。 任何建议? 谢谢!

WPF 4.0的DateTimePicker

根据这篇文章 ,.net 4中有一个单独的DatePicker控件。我已经尝试过了,我也没有看到让它选择一天中的时间的好方法。 有没有一种简单的方法可以通过编辑XAML模板将DatePicker转换为DateTimePicker? 如果没有,获得WPF 4.0的DateTimePicker的最佳方法是什么?

不确定进度条

目前,我有一个按钮,当用户点击它时,它会查找已准备好并包含文件的特定CD-ROM驱动器。 有时,当用户单击按钮时,单击按钮会导致鼠标按下,程序会挂起一段不确定的时间,直到计算机读取CD-ROM驱动器为止。 我做了进度条,但我注意到了一些事情: 1)程序在检查CD驱动器的方法被调用之前挂起/冻结。 因此,我无法设置在调用方法时显示的进度条。 似乎程序在单击按钮时以及用户同时放入CD时挂起。 单击按钮并且鼠标仍然按下/直到系统检测到CD驱动器后,如何显示进度条? 2)我对如何实现Background Worker感到困惑。 我看起来很喜欢的例子,但没有一个匹配MVM(没有代码隐藏)方法的不确定进度条。 3)操作完成后如何使窗口消失? 目前,我有一个取消按钮(绝对没用)。 这是我到目前为止所建立的。 不知道如何继续: 进度条: 我有一个ProgressBarViewModel,其中包含允许用户取消进度窗口的命令。另外,我还有另一个ViewModel,我需要在里面调用progressBar对话框,但我不知道在哪里调用它,因为如果我在里面调用它方法,按钮仍然挂起而不显示进度条。 我注意到如果我在代码隐藏中使用Button_PreviewMouseDown方法,但是,当鼠标关闭并且系统显示进度条但我不想使用代码隐藏时,进度条会正确显示,因为我在另一个视图中有进度条。 目前,对于我的导入按钮,所有附加的命令都是一个调用驱动器搜索CD-ROM驱动器的方法的命令。 MainViewModel: public ICommand ImportCDFilePathCommand { get { return new RelayCommand(ImportCDFilePath, null); } } private void ImportCDFilePath() { // dialogService.ShowDialog(“Progress”, progressBarWindow); x.DriveType == DriveType.CDRom); // Get all the cd roms var cdRoms = allDrives.Where(x=>x.DriveType==DriveType.CDRom && allDrives.Any(y=>y.IsReady)); //…. There […]

如何识别在ListBox中双击哪个元素?

我有一个listbox 。 listbox DataTemplate由几个Text Blocks和一些TextBoxes 。 问题是鼠标双击我需要找出双击完成的元素,以便做一些进一步的操作,如使TextBox可编辑等等。 同时我还需要为列表双击定义一些动作。 所以我无法单独处理每个组件的鼠标。 因此,我需要为ListBox处理鼠标,并找出双击所在的元素。 我尝试使用下面的代码,但它返回ListBox的Name而不是TextBox的Name : private void myListBox_OnPreviewMouseDoubleClick(object sender, MouseButtonEventArgs e) { var mouseWasDownOn = e.Source as FrameworkElement; if (mouseWasDownOn != null) { string elementName = mouseWasDownOn.Name; } } 我也按照以下问题尝试过 WPF在鼠标下获取元素 如何知道鼠标在canvas中点击了什么控件? 在WPF中获取鼠标下的逻辑UIElement public void ListBox_MouseDownHandler(object sender, MouseButtonEventArgs e) { HitTestResult target = VisualTreeHelper.HitTest(myListBoxName, e.GetPosition(myListBoxName)); while(!(target is Control) […]

如何在WPF中检索DataGrid内容的总高度?

我有一个数据网格: 我想将元素的高度绑定到数据网格的高度。 简单地做{Binding ElementName=Foo, Path=ActualHeight}将不起作用,因为它取得了ScrollViewer的高度,而不是数据网格内容的总高度。

如何从xaml获取屏幕尺寸?

我在C#上使用wpf来设计GUI,我想从xaml代码中获取屏幕大小(宽度和高度的值)。 我知道如何从C#代码中获取它们 Width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width; Height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height; 但我不知道如何从XAML代码中获取它们。

如何检查计算机上安装的Windows Media Player版本?

据我所知,Windows Media Player 10是WPF MediaElement工作的最低要求。 以编程方式(从.NET)检查WMP是否存在及其版本的正确方法是什么?