Tag: wpf

C#WPF OpenFileDialog导致XP崩溃,而不是Vista

我有一个WPF应用程序,可以在我的Vista开发机器上正常运行,但不能在生产XP机器上运行。 唯一的问题是调用OpenFileDialog.Show()。 一旦我调用该方法,应用程序就会在XP框上终止。 该问题不会触发exception。 (我在try-catch块中包围了块无效。)当我单击File->打开应用程序时,在XP中退出。 有趣的是,我可以使用File-> Save并使用Save As对话框将文件写入磁盘。 我已经尝试将其构建为.Net 3.0和3.5但它并没有什么区别。 我已经尝试过Microsoft.Win32.OpenFileDialog和System.Windows.Forms.OpenFileDialog并获得完全相同的症状。 Microsoft.Win32变体的代码块: 尝试 { OpenFileDialog ofd = new OpenFileDialog(); if(ofd.ShowDialog()。Value) { //做一点事 } } catch(Exception ex) { MessageBox.Show(ex.ToString(),“Error!”); } 我有的唯一线索是来自安全事件日志的以下(部分)条目。 事件类型:失败审核 事件来源:安全 事件类别:对象访问 事件ID:560 描述: 对象打开: 对象服务器:安全性 对象类型:密钥 对象名称:\ REGISTRY \ MACHINE \ SOFTWARE \ Microsoft \ EnterpriseCertificates \ Disallowed 访问:DELETE READ_CONTROL WRITE_DAC WRITE_OWNER 查询键值 […]

SpellCheck .Net课程是否支持俄语?

当我在我的代码中使用这样的结构并在文本框中键入俄语文本时,没有任何反应: 虽然我正在使用这种结构,但英文文本已经过拼写检查,但不是俄语 我做错了什么? 如何查看其他语言的拼写? 或者也许有人可以建议我检查俄语?

如何在水平滚动条可见时修复DataGrid中Column的宽度?

我像这样使用带有datagrid的复杂头。 但是我遇到了滚动条可见性的问题,它也占用了一个空间,因此宽度不能与网格完美匹配。 我的网格就像 … till column 29 Anda我有像这样的Column.Definition数据网格 …. till column29 结果仍然是这样的: 如何解决列的匹配宽度与scollbar可见这样? UPDATE 尽管我设置了宽度,它仍然保留了空间。 更新2 我不知道滚动条成功resize但空间仍然存在

是什么决定了NavigationCommands.BrowseBack是否调用了页面构造函数?

我有两个页面,其中有类似的逻辑。 加载页面,单击将显示/隐藏其他按钮的一些按钮,继续下一页。 当我点击下一页时,如果单击后退按钮,我将返回上一页。 不同之处在于,当我单击后退按钮时,一个页面(FirstPage)将调用构造函数,后面的按钮会调用重置默认值。 另一个页面(SecondPage)没有得到调用的构造函数,我不知道为什么。 public FirstPage() { InitializeComponent(); DisplayStuff(); } FirstPage将KeepAlive设置为False 。 public SecondPage(object arg1, object arg2) { InitializeComponent(); DisplayStuff(arg1, arg2); } 此页面还将KeepAlive设置为False 。 这两个页面不会inheritance任何内容,也没有任何内容覆盖任何属性。 我能看到的唯一区别是空构造函数,所以我尝试给SecondPage一个空构造函数,但仍然没有运气。 我对WPF比较新(我每6个月工作一到两个小时),所以我错过了什么? 如果相关,这是后退按钮。 编辑:当我单击后退按钮时,SecondPage不保持其状态。 它只是加载一个空页面,因为还没有调用DisplayStuff 。 导航代码: NavigateTo(new SecondPage(arg1, arg2)); protected void NavigateTo(Page page) { NavigationService.Navigate(page); }

如何将TreeViewItem放入生成的TreeViewItem?

C#: TreeViewItem treeItem = null; treeItem = new TreeViewItem(); treeItem.Header = “Audit”; foreach (cAuditTransactionTypeEntity tt in _Pot) { char[] charsToTrim = {‘ ‘, ‘\t’ }; treeItem.Items.Add(new TreeViewItem() { Header = tt.TransactionType, Name = tt.TransactionType.Replace(” “, “”)}); } ToDoList.Items.Add(treeItem); XAML: 我已将TreeViewItems添加到TreeView ,如上所示。 现在我需要在每个生成的TreeViewItems下添加更多项目。 但是,如XAML(也在上面)中所示,新生成的项目尚未添加,因此我无法将它们命名为在代码中引用它们。 treeItem.Items.Add(new TreeViewItem() { Header = tt.TransactionType, Name = tt.TransactionType.Replace(” “, “”)}); 因此,我在代码的这一部分添加了名称生成。 […]

WPF On Start检测进程是否已启动并将应用程序置于最前面

我有一个非常简单的问题。 程序启动后,用户尝试启动另一个实例。 新实例需要将旧实例放在前面并退出。 解决方案非常简单,我可以从http://www.codeproject.com/KB/cs/oneprocessonly.aspx获取代码并完成它。 幸运/不幸的是我正在使用WPF。 这意味着,我无法控制Main()方法的内容。 我找到了解决这个问题的方法“如何在我的WPF应用程序中提供自己的Main()方法?” @ http://learnwpf.com/Posts/Post.aspx?postId=a5643949-ab80-47f9-93c8-f5e8e5782d34 。 但是,当没有App.xaml文件时,这个解决方案会带来像Expression Blend stats这样的另一个问题。 我可以使用App类OnStarted事件,但我正在使用WPF的启动画面资源,这意味着将显示额外的启动画面。 我对这种方法的最后一个担忧是接缝不能“面向未来”给我:(。 这个问题有没有WPF风格的解决方案? 先感谢您。

将图像保存到WPF应用程序中的文件保持宽高比

嗨,我试图用透明背景缩放png图像。 我需要它是250×250像素。 水平和垂直居中并保持正确的纵横比。 设定保证金的可能性。 这是我到目前为止所得到的。 var img = new System.Windows.Controls.Image(); var bi = new BitmapImage(new Uri(“C://tmp/original.png”, UriKind.RelativeOrAbsolute)); img.Stretch = Stretch.Uniform; img.Width = 250; img.Height = 250; img.Source = bi; var pngBitmapEncoder = new PngBitmapEncoder(); var stream = new FileStream(“C://tmp/test3.png”, FileMode.Create); pngBitmapEncoder.Frames.Add(BitmapFrame.Create(img)); pngBitmapEncoder.Save(stream); stream.Close(); 我知道它还没有使用Image对象,因此只保存图像而不缩放它。 但是我在保存Image对象时遇到了问题。 它给出了一个无法从’System.Windows.Controls.Image’转换为’System.Uri’的编译错误 希望可以有人帮帮我 :-) 编辑 将代码更新为具有编译错误的版本。 刚改变了 pngBitmapEncoder.Frames.Add(BitmapFrame.Create(bi)); 至 pngBitmapEncoder.Frames.Add(BitmapFrame.Create(img)); 这是我使用的列表 […]

使用数据绑定处理样式

重写 我有一个接收文件的应用程序。 此文件包含大量可编辑内容。 此内容有多种可能的类型(即布尔复选框,文本框等)。 问题是,这些值可以是单独的,也可以是一个组(最多8个),因此它们可以是数组。 我们将这些值绑定到ListView ,并使用DataTemplates显示它们。 实际上,我从数组列表中创建了ListView 。 这些数组中的项需要是数据绑定和正确设置样式(例如,布尔数组需要创建复选框,而字符串数组需要文本框)。 每个创建的元素都需要放入ListView的列中。 当前样式使用DataTemplates与数据绑定,即 对输入数组中的每个值重复此操作,因此您有Value[1] , Value[2]等。 这意味着重复几乎相同的代码8次,然后对下一种类型执行相同的操作。 由于存在大量输入类型,这意味着重复代码的数量是荒谬的。 我的问题是: 有没有更好的方法来做到这一点,所以我们不必重复数据模板,同时继续使用列? 顺便说一句,我使用的是.NET 3.5。 行如何显示的示例。 每个元素都在自己的列中。 combobox是从arrays构建的。 编辑示例DataTemplate: 示例图: 我有一个ViewModel。 此ViewModel具有List,由ItemData组成。 ItemDataData有一个名为Values的数组。 List已绑定到View。 我们需要根据我们访问的ItemData的属性选择要使用的DataTemplate: 一个名字 选项arrray中的一个或多个。 目前,我们在ListView中显示List。 生成ListView ,列具有附加到其CellTemplate的不同DataTemplates ,每个索引一个,总共8个DataTemplates。

如何将Func 绑定到视图模型的XAML中的依赖属性?

我在AutoFilteredComboBox中有一个依赖属性: public Func theFilter { get { return (Func)GetValue(theFilterProperty); } set { SetValue(theFilterProperty, value); } } // Using a DependencyProperty as the backing store for theFilter. This enables animation, styling, binding, etc… public static readonly DependencyProperty theFilterProperty = DependencyProperty.Register( “theFilter”, typeof(Func), typeof(AutoFilteredComboBox), new UIPropertyMetadata(null)); XAML中的绑定是: 视图模型中的TheFilter是: public Func TheFilter = (o, prefix) => o.Companyname.StartsWith(prefix); 所有编译都没有difficutly,但依赖属性 […]

WPF – 改变代码背后的样式

我有一个列表框,显示TFS查询的结果。 我想在后面的代码中更改ListBoxItem的样式,以获得包含在查询结果中的列。 ListBoxItem的样式在我的Windows.Resoruces部分中定义。 我试过这个: public T GetQueryResultsElement(string name) where T : DependencyObject { ListBoxItem myListBoxItem = (ListBoxItem)(lstQueryResults.ItemContainerGenerator.ContainerFromIndex(0)); // Getting the ContentPresenter of myListBoxItem ContentPresenter myContentPresenter = myListBoxItem.Template.LoadContent().FindVisualChild(); // Finding textBlock from the DataTemplate that is set on that ContentPresenter DataTemplate myDataTemplate = myContentPresenter.ContentTemplate; <——+ T myControl = (T)myDataTemplate.FindName(name, myContentPresenter); | | return (T)myControl; | } […]