Tag: wpf

我如何在wpf中更改语言文本框?

我是WPF的新手。 我正在尝试在内部写入时更改文本框中的语言,在窗口中我正在使用此代码。 System.Globalization.CultureInfo TypeOfLanguage = new System.Globalization.CultureInfo(“en-us”); InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage); 问题我不知道我将如何更改语言因为代码在WPF中不起作用。 请帮帮我如何更改输入语言?

从DataGridCell获取控件

假设我在DataGridTemplateColumn中有一个任意控件,我希望知道如何获取控件,因为我已经检索了包含该控件的DataGridCell。 我的包含DataGrid的XAML文件如下: … … 我使用扩展方法检索DataGridCell,如下所示: DataGridCell cell = view.dgMovement2.GetCell(index, 6); 包含在静态类中的扩展方法可在此处找到 问题是,一旦我获得DataGridCell,如何检索“PercentageEditor”? 有谁能够帮我? 任何帮助将不胜感激。 谢谢!

在wpf应用程序中捕获windows shutdown事件

我有一个ac#WPF应用程序,需要在关闭时保存数据。 如果用户关闭程序,则窗口关闭/关闭事件可正常工作,但如果用户注销/关闭计算机,则不会调用它们。 我已经找到了在winforms程序中捕获此事件的方法( 此处和此处 )。 但我无法弄清楚如何在WPF应用程序中实现这一点。 我正在尝试停止关机,直到我的程序准备好退出

C#在Canvas中拖放图像

我试图谷歌如何在canvas上拖放UIElements,但找不到我正在寻找的东西。 我有一个带有Window的C#WPF应用程序。 在窗口内我有一个Canvas,我可以在其中添加图像。 我想要的是能够拖放图像,同时保持在canvas的边界内。 我也希望它在代码中,所以不在xaml中。 我在我添加/更新图像到canvas的function中得到了这个。 TODO应该替换为拖放事件。 Image img = ImageList[i].Image; img.Name = “Image” + i; // TODO: Drag and Drop event for Image // TODO: Check if Left and Top are within Canvas (minus width / height of Image) Canvas.SetLeft(img, Left); // Default Left when adding the image = 0 Canvas.SetTop(img, Top); // Default […]

WPF文本框的ValidationRule

我是WPF的新手。在我的UserControl中,我有8个标签及其各自的8个文本框,如下所示: 1.Label : abc 2.Label : def TextBox1 : TextBox2 : 3.Label :xyz 4. Label : ghi Textbox3 : TextBox4 : 这些文本框文本属性中的每一个都应该包含以TextBox1.text各自的标签名称结尾的文本,应该是xxxx.abc , TextBox2.text应该是xxxx.def等等。如果文本框不应该有红色边框。 希望我对细节很清楚。所以我需要为每个文本框编写不同的ValidationRule吗? 你输入的是什么?

带有CompositeCollection的WPF ComboBox – SelectedIndex不粘

我正在使用带有CompositeCollection的ComboBox,如下所示: 显示的数据完全符合预期,我现在只想将默认索引/值/项设置为包含内容All的ComboBoxItem,并且遇到一些问题。 如果我设置: 这完全被忽略了。 我也尝试过: 虽然这确实选择了All值,但是当我打开下拉列表时,突出显示的值是加载到ComboBox上的最后一个值,而不是All值。 如何解决这个问题,以便在数据绑定后我的ComboBoxItem内容保持选中状态? 编辑: 我刚刚尝试用另一个替换我的 ,它工作正常,即使它们仍然在 。 EDIT2: 图像显示问题所在: EDIT3: AllBitsSource的代码: XAML: 代码背后: private readonly ObservableCollection _bits = new ObservableCollection(); private void GetCurrentSettings() { setttings = display.GetDisplaySettings(); foreach (var mode in setttings) { var displaySettingInfoArray = mode.GetInfoArray(); if (_bits.Contains(displaySettingInfoArray[4]) == false) { _bits.Add(displaySettingInfoArray[4]); } } } public ObservableCollection AllBits { get […]

在检查取消时发送背景工作人员睡觉

我有一个后台工作者,通过ReportProgress定期更新GUI。 更新定期发生,例如每5秒一次,或者可能是20秒。 为了在设定的时间执行更新,我将工作进程发送到hibernate状态一段时间,当它唤醒时,它会使用新信息更新GUI。 工作人员支持取消,在睡觉之外取消正确。 我希望能够在等待期间调用取消,但是将线程发送到睡眠状态会使这变得不可能。 我假设我将不得不调用一个循环并检查取消作为循环的一部分来模拟线程睡眠。 实现这一目标的最佳方法是什么,我的尝试完全取消了。 long counter = 0; long sleepfor = timelinespeed*1000; int timelinespeed = 10; while (counter != sleepfor) { Thread.Sleep(1); counter++; if (bkgwk.CancellationPending) { cancelled = true; e.Cancel = true; bkgwk.Dispose(); break; } }

使Camera LookDirection看起来正面

如何在WPF查看3D模型的前端? 我很困惑为LookDirection设置XYZ。 我不知道当我设置xyz时会发生什么,我不知道相机在哪里看。 对于UpDirection我不知道同样的事情。 以下是我的相机属性: camera.Position = new Point3D(100, 100, 150); camera.LookDirection = new Vector3D(-100, -100, -100); camera.UpDirection = new Vector3D(0, 0, 1); 问题是相机从后面看。 模型显示为下面的立方体。 如何使它看起来正面? 另请解释如何设置xyz。 我知道什么属性做但我无法想象他们。 我认为X是从右到左.Y是深度。 Z是最多的。

在UWP Xaml中创建和填充NxN网格

我正在尝试创建一个UWP益智游戏,我想将图片分成n个部分,然后在网格中显示这些部分。 我的问题是,如何强制某种NxN风格。 现在我必须最大化窗口以便看到3×3网格,如果我收缩任何一边,它将收敛到2列,1列网格。 有办法处理这个吗? 这就是我所做的,我知道RowDefinition现在是手动的,直到我找到一个更好的方法来做到这一点。 这是两个示例图像:

使用Viewbox缩放/拉伸在WPF中维护固定厚度线

我有一个 ,它包含一些垂直和水平 s。 我希望网格可以根据窗口大小进行扩展,并保持其宽高比,因此它包含在 。 但是,我还希望线条总是以1像素的宽度渲染,所以我使用: Line line = new Line(); line.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased); // other line settings here… 这使得线条的初始外观变得理想,但是一旦开始调整窗口大小,拉伸/缩放就会开始,并且线条再次成为1和2像素厚度的混合。 有没有办法让线条总是1像素厚,还可以调整窗口/网格的大小? 更新 – 根据Clemens的建议使用路径几何 @Clemens – 感谢您突出显示线条和路径之间的渲染差异。 当我尝试使用你的例子重新编写我的代码时,我会感觉到我正在为自己挖掘更多的漏洞,并没有真正掌握整个概念(完全是我的错,不是你的,我只是WPF的新手) 。 我将添加一些截图来说明以下描述: 我正在制作一个游戏板(对于Go的游戏,以防万一有助于理解布局)。 我有一个9×9网格,我打算通过简单地将椭圆添加到特定网格单元来放置游戏块。 然而,为了绘制板上的底线,我需要在板上绘制与单元格中间相交的线(在Go中,块放置在交叉点上,而不是单元格的中间)。 很可能我采取了完全错误的方法,请随时告诉我重新开始不同的路线,而不是在当前结构中进行黑客攻击。 这就是我到目前为止的方式(由于计算坐标的方式,我以编程方式添加路径。不确定是否可以在XAML中完成): XAML: C#: int cols = 9; int rows = 9; // Draw horizontal lines for (int row = 0; row < […]