问题标签 [wpf-style]

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 回答
6515 浏览

wpf - RelativeSource 数据触发器绑定不起作用

DataGridTextColumn如果它是只读的,我正在尝试将它的背景颜色设置为另一种颜色。我正在使用以下代码这样做:

我没有运气,但是删除触发器会导致背景始终为浅绿色。数据触发器绑定有问题吗?我对 WPF 比较陌生,但这是我可以在网上找到的。理想情况下,这将在 App.XAML 中,因此它将适用于所有列,例如 this,那么是否有办法将其转换为样式?谢谢。

编辑 - - - - -

如果我通过 ElementName 绑定它可以工作:

但是,如果可能的话,我希望这更通用。再次感谢。

0 投票
1 回答
936 浏览

wpf - WPF ProgressBar 刻度线

如何设置 ProgressBar 的样式以使用老式的刻度线?有这个问题,但它是WinForms。

在此处输入图像描述

0 投票
1 回答
440 浏览

wpf - WPF UserControl:使用默认 WPF 样式而不是继承父应用程序的样式

我在应用程序中嵌入了一个 WPF 用户控件,它继承了应用程序的样式。我在设计用户控件时考虑了默认的 WPF 样式,它没有定义自己的资源/样式。但是,由于继承了宿主应用程序的样式,它看起来并不正确。如果用户控件只使用默认的 WPF 样式,我会更喜欢。有没有一种简单的方法可以做到这一点?

UserControl 本身由 a 组成System.Windows.Controls.Frame,它引用 a System.Windows.Control.Page

theUserControl或 the都没有Page定义自己的样式。

0 投票
0 回答
270 浏览

c# - C#/WPF - 共享样式设置器

我正在尝试设计一组显示设备级别的控件。

我正在使用具有多数据触发器样式的标签控件,该触发器检查该字段的值是否在某个值之间,并应用突出显示以指示错误。

我试图解决的问题是通常有两种或三种状态:正常、警告和错误。这些状态适用于多个领域。

我希望能够将触发器的设置器合并到一个可以单独存储的静态资源中,比如一个列表,然后简单地使用这个列表作为 MultiDataTrigger.Setters 的值。通过这种方式,我可以将我的错误和警告状态定义为 setter 的集合,并从中心位置更新它们。

IE:

我遇到的问题是 DataTrigger/MultiDataTrigger 的 Setters 属性没有设置方法,并且需要触发器来确定状态。

有什么办法可以完成我想要的吗?

可能的解决方案:

  • 一个接受范围列表并应用正确样式的控件
  • 将设置器从一个触发器复制/粘贴到另一个*当前使用此 *
  • @PieterWitvoet 推荐StyleSelector

编辑

我创建了一个用户控件来完成我想要的。C#

我正在使用下面的基类来定义规则

例如:

在 XAML 中:

0 投票
2 回答
793 浏览

wpf - WPF 基于另一个组合框启用组合框

我知道已经有很多做类似事情的例子,我已经阅读了这些,但无法弄清楚为什么我的实现不起作用。

当 ComboBoxA 设置为值 X 时,我试图禁用 ComboBoxB。通过此实现,无论在 ComboBoxA 中选择的值如何,ComboBoxB 始终处于启用状态。

组合框A:

组合框B:

0 投票
1 回答
1014 浏览

c# - 带有换行和工具提示的 DataGridTextColumn 样式

在我的 C#/WPF 应用程序中,我有一个使用文本换行和工具提示的Datagrid多列。DataGridTextColumn

我可以这样写每一列(这很好用):

但我想定义一个通用样式,可以设置换行和工具提示文本,知道每列的工具提示文本会有所不同。目的是避免代码冗余并使其更清晰。

到目前为止,这是我的风格:

还有我的专栏:

问题是我无法指定要传递给样式的工具提示。有没有办法在不DataGridTextColumn.CellStyle为每列写 5 行的情况下做到这一点?谢谢

0 投票
1 回答
829 浏览

wpf - 所有切换按钮的单一样式,但具有不同的静态内容

静态资源样式

切换按钮代码

但我无法将内容获取错误设置为Content is not recognized or inaccessible.

我不是 WPF 的常客。

谢谢

0 投票
1 回答
5902 浏览

c# - 如何创建自定义 WPF 样式库

我试图将我的 WPF 样式放在一个单独的库中,但对于如何最好地实现这一点有点迷茫。这是我到目前为止所做的:

  1. 创建了一个新的类库项目并添加了引用 PresentationCorePresentationFrameworkSystem.XamlWindowsBase
  2. 在这个类库项目中创建了文件“MyStyles.xaml”,内容如下:

    /li>
  3. 建了项目。

  4. 创建了一个新的 WPF 应用程序项目,并引用了上面构建的库。

  5. 在 App.xaml 中尝试引用库中的资源字典,如下所示:

    `

  6. 此时 VS intellisense 告诉我们在查找资源字典时发生错误,尽管应用程序构建没有问题。

  7. 即使我能够加载资源字典,我也不确定如何将它与控件一起使用,例如,<Button Style="What goes here??" />

查看互联网,但似乎找不到如何将样式打包到单独的 dll 中的好例子。任何指针?

0 投票
0 回答
1719 浏览

wpf - 将 Datagrid Autofilter 添加到 Extended WPF Toolkit™ 社区版

我正在使用Extended WPF Toolkit™ Community Edition Datagrid,我希望在列上有一些自动筛选选项。付费版本(大约 1000 美元)包括此功能,但我的项目并不能证明这笔钱是合理的。

所以我为原始 WPF找到了这个很棒的Autofilter ExtensionDatagrid,但它与 Xceed(AKA Extended WPF Toolkit™ Community Edition)Datagrid 不兼容。

据我了解,自动过滤器只是一种位于 Datagrid 列标题之上的样式。我试图在 Xceed 的 Datagrid 访问上做同样的事情,ColumnManagerCell但它没有用,我想我只是错过了一些小东西。我试过了:

Resources,我也试过用了<Setter Property="Template"...,还是不行。ColumnManagerCell似乎 Xceeds “等效于” WPF Datagrid ColumnHeaderStyle

与原始 Datagrid 一起使用的代码是:

正如扩展程序的网站所指出的那样。

我也在考虑做类似的事情:

但我不确定目标是什么以及它最终将如何工作。

有谁知道如何将Autofilter Extension Style放在Xceed Extended WPF Toolkit™ Community Edition Datagrid上,并使两者一起工作?

0 投票
2 回答
955 浏览

wpf - 样式 DataTriggers 在设计时工作,但在运行时不工作 - 为什么?

(在任何人问之前,标题是正确的:我的代码仅在 Blend 的设计时工作,而迄今为止最常见的情况正好相反:o)

在 Expression Blend 中设计一个DataTemplate时,我可以看到我的DataTriggers工作正常,我的示例 ViewModel 为电池电量生成一个随机值,并且边框宽度和背景颜色都相应地显示,或者在其BatteryLevelTemplate本身中,或者在另一个包含大量具有各自(随机)电池电量的设备,以及设计时 DataContext。

这是 Expression Blend 的屏幕截图:

在此处输入图像描述

这里是正在运行的应用程序的屏幕截图。请注意,虽然两者都使用与 DataContext 完全相同的类(但作为 Blend 中的设计时),但在运行时仅应用默认的 RedBattery 颜色设置器,即使值本身(也会影响宽度)变化:

在此处输入图像描述

以下是相关的代码部分:

=============

=====================

更新(使用 Contango 提供的有价值的 Snoop 提示):

我“窥探”了BatteryCharge(Border) 元素,发现了一件有趣的事情:

  • Width受多值元素绑定影响的属性工作正常,并显示在“本地”的绿色阴影行中;
  • 另一方面,该Background属性不工作,不出所料地显示为Style默认红色值。这个不是“DataTriggered”。

在此处输入图像描述

我现在的疑问是我应该如何使用 Snoop(或其他任何东西)来找出未应用 DataTrigger 的原因。