Tag: wpf

键盘焦点到DataGrid

我有一个WPF DataGrid,并希望将焦点设置为第一个项目,以便用户可以在第一次打开对话框时使用项目列表中的键盘进行导航。 使用datagrid.Focus(); 我可以将焦点设置为DataGrid,但这显然不是键盘焦点,因为当我按下箭头键时,我无法在DataGrid中导航。 焦点跳转到文本框“描述”,但这不是我想要的(见图片)。 如何以正确的方式将焦点和键盘焦点设置为DataGrid? 谢谢您帮忙。

从WPF UserControl访问ResourceDictionary

我正试图通过C#访问UserControl代码隐藏中的资源字典,但我收效甚微。 合并词典: 嵌入字典: /Resources/Images/default_thumb.png /Resources/Images/disconnect_thumb.png /Resources/Images/failed_thumb.png /Resources/Images/success_thumb.png 代码背后: var resourceDictionary = new ResourceDictionary(); resourceDictionary.Source = new Uri(“/Resources/BiometricDictionary.xaml”, UriKind.Relative); 我已经尝试了所有的例子和有用的提示,但很快就会出现。 现在,成功将是加载字典的能力。 有什么建议?

大的,每像素1位的位图导致OutOfMemoryException

我想做的是从磁盘加载图像并从中创建一个BitmapSource 。 图像为14043px x 9933px,为b / w(1bpp)。 但是我遇到了OutOfMemoryException因为以下代码消耗大约800 MB RAM。 以下代码在我的特定文件的维度中生成ImageSource 。 我这样做是为了看看我是否可以在不使用磁盘上的实际文件的情况下使其工作。 public System.Windows.Media.ImageSource getImageSource(){ int width = 14043; int height = 9933; List colors = new List(); colors.Add(System.Windows.Media.Colors.Black); colors.Add(System.Windows.Media.Colors.White); BitmapPalette palette = new BitmapPalette(colors); System.Windows.Media.PixelFormat pf = System.Windows.Media.PixelFormats.Indexed1; int stride = width / pf.BitsPerPixel; byte[] pixels = new byte[height * stride]; for (int […]

在c#.net中App和Application有什么区别?

App和Application在c#中有什么区别吗? 我试图在主WPF应用程序中加载的控件库中使用App.current.Resources 。 但这不可能直接,但同时它允许我使用Application.current.Resources 谁能帮助我理解这两者之间的基本差异。 使用Application.Current.Resources而不是App.current.Resources有什么缺陷吗?

如何让WPF窗口自动调整内容,而不是更多

我有一个包含2个TextBlocks,一个进度条和一个取消按钮的对话框。 这是XAML: Window x:Class=”WpfApplication4.MainWindow” xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation” xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml” xmlns:d=”http://schemas.microsoft.com/expression/blend/2008″ xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2006″ xmlns:local=”clr-namespace:WpfApplication4″ mc:Ignorable=”d” Title=”MainWindow” Height=”Auto” Width=”200″> This is a really really really really long string that wraps 我希望窗口不要有一个固定的高度,但根据它的孩子的大小自动调整它的高度,但没有更多,但看不到这样做的方法。 在我没有为Window的高度指定任何东西的那一刻,它似乎采用了一个比内容更大的高度不确定原因,或者它从哪里得到高度值? 如果我设置Windows高度=“自动”我得到相同的东西。 RowDefinitions的所有高度都设置为“Auto”,我的意思是“将行高设置为行子高度”。 非常感谢您的帮助。

如何在C#中创建SOAP / WSDL客户端?

我一直在用PHP玩它并得到一些工作,我做的是: $client = new SoapClient(“http://ws.cdyne.com/WeatherWS/Weather.asmx?wsdl”); $fetchedArr = $client->GetCityForecastByZIP(array(“ZIP” => “10451”)); //get the weather in the bronx YO! 现在我希望我的应用程序我WPF / C#也这样做。 c#中的等价物是什么?

WPF如何在处理更多代码之前等待绑定更新?

据我所知,调度程序发生在另一个线程中,它负责更新数据绑定,布局等。但是,有没有办法等到调度程序没有更多的项目或至少没有更多的数据绑定? 我想确保属性更改已更新其所有组件,并在运行更多代码之前运行依赖属性更改的回调。 编辑:所以我猜这不是必需的,我只是想了解我本应该做些什么。 我的主要问题是WPF如果滚动查看器的子项resize,滚动查看器会自动更新其范围吗? 但我也很好奇我是否可以等待绑定更新,或者是否有任何保证,一个绑定在另一个之前更新? 我是否希望编码以使绑定更新的顺序无关紧要? 目前我使用依赖属性更改回调来执行各种通常依赖于其他属性更新的东西

在WPF中使用FolderBrowserDialog的DialogResult

我第一次在WPF中实现FolderBrowserDialog并且我不喜欢它… 除了我在我的项目中没有引用Windows.Forms的问题,现在我在查看DialogResult返回值是什么时遇到了麻烦…… 使用OpenFileDialog,过去我已经这样做了: OpenFileDialog ofd = new OpenFileDialog(); Nullable result = ofd.ShowDialog(); if (result == true) { // all went well, carry on and do your thing here } 不幸的是,我现在得到的错误是关于从DialogResult类型转换为bool以及任何有你的转换。 在WPF中使用对话框似乎无法找到关于如何完成此步骤的任何内容,任何人都可以解决一些问题吗? 提前致谢! 编辑 这是我的代码修改后没有类型转换错误。 我不确定检查result价值是多少。 通常我会使用DialogResult.OK除了这里没有显示为有效值。 private void btnBrowse_Click(object sender, RoutedEventArgs e) { if (cmbTemplate.SelectedItem == “Blockbusters”) { FolderBrowserDialog fbd = new FolderBrowserDialog(); DialogResult result […]

WPF DataGridTextColumn绑定不接受小数

我不明白问题是什么。 绑定在Decimal属性上。 这是XAML: 我字面上不能输入’。’ 字符。 为什么它会阻止我输入那个字符,我怎么告诉它让我这样做。 我尝试做这样的字符串格式: 但这并没有解决我的问题,因为它所做的就是将“.00”附加到我键入的任何内容的末尾。 我只需要输入句号即可。 更新: 我被指示在这里 。 我删除了UpdateSourceTrigger属性,这使我可以输入’。’。 我没有安装4.5 Beta,我的本地化设置是正确的。 所以现在我的问题是如何让DataGridTextColumn允许我输入’。’ 是否设置了UpdateSourceTrigger属性?

如何从C#代码中扩展DataGrid列?

我在我的C#代码中创建了WPF DataGrid的列。 我希望其中一列自动拉伸到DataGrid的宽度。 在XAML中,我设置Width=”*” 。 我如何在代码中执行此操作? 编辑 一些答案似乎引导我找到正确的解决方案,但我觉得我需要详细说明我正在尝试做的事情: 我实际上是从DataGrid派生出一个新类。 在它的构造函数中,我添加了四列: this.IsReadOnly = true; this.AutoGenerateColumns = false; this.ItemsSource = m_dataSource; DataGridTextColumn anColumn = new DataGridTextColumn() { Header = “Col1”, Binding = new Binding(“B1”) }; DataGridTextColumn tpColumn = new DataGridTextColumn() { Header = “Col2”, Binding = new Binding(“B2”) }; DataGridTextColumn txColumn = new DataGridTextColumn() { Header = […]