问题标签 [wpf-4.5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
9378 浏览

wpf - 带有 Microsoft 的 WPF 功能区的窗口样式与 Windows 8 样式不匹配

我正在使用 Windows 8 和 Visual Studio 2012 的发布版本来创建带有功能区控件的 WPF 应用程序。我选择 .Net Framework 4.5 中 WPF 自带的功能区控件。

我创建功能区的代码:

但问题是它会生成一个与 windows 8 样式不匹配的丑陋样式的窗口:

我的丝带

将其与资源管理器功能区进行比较。窗口标题居中(并具有不同的颜色),窗口的边框大小不同。功能区的样式不一样,但如果我有与 MS Word 相同的功能区样式(在 Windows 8 中正确显示),我会很满意。

Windows 8 中的资源管理器功能区

WPF 的功能区控件是否不支持新的 Windows 8 样式?还是我错过了任何设置?

编辑:

我开始在 Blend 中编辑模板(4.0,我无权访问 5.0)。在修复了一些编译错误(似乎是 blend 中的错误)之后,我可以运行应用程序,但它看起来像这样:

在此处输入图像描述

但这不是我改变的一个好的起点......

0 投票
4 回答
9141 浏览

c# - 更改 .NET 4.5 WPF 功能区的主题

我正在尝试从 .NET Framework 4.5 更改新WPF 功能区控件的主题,但我被卡住了。

我只设法更改了一些画笔(背景、前景、边框......),但我似乎无法更改明亮的叠加层和阴影。

我很高兴使用资源字典,但我不知道需要设置哪些属性。

我希望你能指出我正确的方向,非常感谢你的帮助!

0 投票
3 回答
1724 浏览

c# - 滚动列表框时防止选择

我有一个将鼠标事件转换为触摸事件的应用程序,因此我可以使用惯性滚动和其他触摸功能。该代码在此处的选定答案中:

WPF:是否有可能将普通鼠标事件“路由”到 Windows 7 中的触摸事件

我遇到的问题ListBox是当我轻弹滚动时,它会选择项目。ListBox通常,触摸设备在滚动时不会选择项目。我在这里想念什么?

这是我正在使用的 xaml:

后面的代码:

0 投票
1 回答
766 浏览

wpf - 列表框减速

在 WPF 4.0 中,我在 ScrollViewer 上使用了一个属性来更改减速,如下所示:

似乎在 WPF 4.5 中,我不再有权访问 ScrollViewer。如何更改 WPF 4.5 中的平移减速度?

0 投票
1 回答
335 浏览

c# - 如何绑定到静态 BitmapSource?

我想用标准的 Windows“错误图标”创建我的自定义错误/异常对话框。

我遵循了这个问题的建议并且它有效。

但是,我目前正在创建一个绑定到的实例属性,就像绑定到任何属性一样:

我想做的是在我的 ErrorWindow 类中定义一个静态字段:

我不能强制我的 XAML 引用该字段。

我正在使用 WPF 4.5。

0 投票
1 回答
961 浏览

c# - 基于 ViewModel 属性实时设置树视图项目文本颜色

在我的 WPF 应用程序中,我使用的是 MVVM 模式。我的视图有一个树视图,我绑定了一个 observableCollection 对象,如下定义。我想要做的是在绑定对象将其脏属性设置为 true 时更改树项名称的颜色。当我第一次填充树时,我可以让它设置颜色,但是当属性在 false 和 true 之间变化时,它不会反映变化。

这是树视图 xaml:

这是绑定到树的集合:

在 HierarchicalItem 集合中引用的 ViewModel 都派生自公开“IsDirty”属性的基类。这肯定会改变状态,所以我不确定我是否犯了编码错误,或者我想要实现的目标是否无法以这种方式完成。这些类都使用“INotifyPropertyChanged”接口。这是 ViewModel 基类中的“IsDirty”属性:

0 投票
1 回答
70 浏览

wpf - 选择禁用的 ListBox 项时显示禁用的原因

我有一个ListBox不应选择的项目,因为它们已被禁用。我通过绑定IsEnabled禁用该项目的属性来实现这一点。但是,我需要能够显示一个弹出窗口,显示当用户单击禁用项目时它被禁用的原因。完成这样的事情的最佳实践是什么?

0 投票
3 回答
8253 浏览

wpf - WPF 4.5 Microsoft 的 Ribbon:RibbonApplicationMenu 的哪些控件

我正在使用 Microsoft 的RibbonWPF 4.5 并在 Win 8 机器上使用 VS2012 (C#) 开发应用程序。我想让我的应用程序RibbonApplicationMenu像 Office Word 2010 的“文件”菜单一样显示,但我找不到它使用了哪个控件(参见随附的屏幕截图,红色标记的控件编号 1 和 2)。我也尝试过RibbonApplicationSplitMenuItem,但它更像是 Office 旧式。也许任何人都可以告诉我。先感谢您。

使用哪个控件

0 投票
1 回答
5341 浏览

wpf - 如何提高 WPF Grid 控件(.NET 4.0/4.5)的性能?

定义:将二维字符串数组(大约 10 列,1,600 行,固定长度的 7 个字符)用作 WPF .NET 4.0 Grid 控件的数据源,使用以下代码片段来填充 Grid标签显示数组中的值。注意:Grid 已添加到 XAML 并传递给函数 PopulateGrid(参见清单 1)。视觉输出本质上是只读模式下的表格数据表示(不需要双向绑定)。

问题:性能是一个关键问题。在功能强大的 Intel-i3/8GB-DDR3 PC 上运行此操作需要令人难以置信的 3...5 秒;因此,恕我直言,此 WPF Grid 性能至少比预期慢一个数量级,基于与类似控件/任务的比较,例如常规 WinForm 数据感知控件,甚至 Excel 工作表。

问题1:是否有办法在上述场景中提高WPF Grid的性能?请将您的答案/可能的改进指向下面清单 1 和清单 2 中提供的代码片段。

问题 1aDataGrid :建议的解决方案可以将数据绑定到额外的数据感知控件,例如DataTable. 我在清单 2 中添加string[,]DataTable dt转换器,以便可以将附加控件的DataContext(或ItemsSource其他)属性绑定到dt.DefaultView. 那么,以最简单的形式,您能否提供一个紧凑的(最好是几行代码,因为它是在旧式数据感知控件中完成的)和高效(性能方面)的 WPF 数据绑定DataGridDataTableobject的解决方案?

非常感谢。

清单 1Grid GridOut从 2D填充 WPF 的过程string[,] Values

清单 2。转换string[,]_DataTable

注 2。建议使用其 Text 属性而不是 Content替换Label控件,例如. 它将稍微加快执行速度,而且代码片段将与 VS 2012 for Win 8 向前兼容,其中不包含.TextBlockLabelLabel

注意 3:到目前为止,我已经尝试绑定DataGridDataTable(参见清单 3 中的 XAML),但性能很差(grdOut是一个嵌套Grid的,用作表格数据的容器;_dataGrid是一种数据感知对象类型DataGrid)。

清单 3DataGrid绑定到DataTable:性能很差,所以我删除了它ScrollViewer,但它运行不正常。

0 投票
1 回答
1218 浏览

c# - WPF DataGrid 和 ITypedList

我试图ITypedList在我的中实现,ItemsSource但从PropertyDescriptor.GetValue/SetValue未被调用。它有什么问题?

XAML 看起来像这样:

RowCollection 定义为:

其中 RowDescriptor 是:

行是: