问题标签 [basedon]

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

xaml - 在 xaml 中扩展自定义控件的样式

我正在开发一个 WPF 应用程序,并创建了一个自定义控件,我们将其称为“CControl”。在我设计应用程序布局的 xaml 文档中。我使用以下方式导入样式:

并且能够很好地使用控件。问题是我想在 CControl 上扩展样式。在资源字典中,我可以设置:

这会将样式应用于控件,但不会导入 CControl 定义的样式,因此我使用:

问题是当我的框架尝试加载 xaml 时,我得到以下异常:

我尝试了不同的使用 BasedOn 的方法,但没有得到任何工作。任何帮助都会非常有用。

谢谢

乔什

0 投票
2 回答
399 浏览

wpf - 覆盖每个模块的一些主题样式和属性

我正在使用“Prism”编写一个 WPF 应用程序,并且一些购买的 Grid 主题应用了“Xceed Theme”。我正在设计我们的客户要求的巨大变化,让他们可以选择修改某些属性(例如所选行的背景),并且此功能可在每个屏幕“模块”中使用。

所以我的问题是:

  1. 将我的 xceed 网格主题源添加到我的App.xaml合并字典后,如何在另一个 xaml 文件中覆盖它的一些样式(我知道其键)app.xaml(可能通过添加BasedOnstyle标签)?
  2. 是否可以为每个模块创建自定义资源字典并app.xaml在加载时将其添加到合并字典中?
0 投票
0 回答
449 浏览

wpf - 如何在另一个 xaml 文件中覆盖在数据模板中定义的 LinearGradientBrush 而无需再次复制整个模板

在我的 WPF 应用程序中,我在整个应用程序上都应用了一些购买的网格主题,需要一个 CR 才能修改每个模块/屏幕的这个主题,修改范围将是画笔、颜色和样式“使用 BasedOn”...因此,如果我在某些模板内部定义/使用了画笔,如何在本地模块 xaml 中覆盖它,而无需再次复制整个模板以及关于画笔和颜色是否足以在本地 xaml 中使用相同的键再次重新定义它们

这是我要修改的带有画笔的控制模板:

0 投票
1 回答
581 浏览

wpf - 继承/基于数据模板

我有一个DataTemplate在我的 WPF 应用程序中使用的 -

然后我(在一个DocumentSetTemplateSelector类中)定义要使用的模板;

我想做/知道的是;创建 4 个其他模板,这些模板将继承上述模板,然后允许覆盖某些属性;

一个例子(这个模板继承自上面的类)——所以它们看起来是一样的;

我希望有一种风格附加到这个(如果可能的话)以便获得这种效果;

或者

0 投票
1 回答
583 浏览

wpf - 扩展自定义 TreeView 项目容器样式?

如何扩展我在 CustomTreeView 中声明的样式?所以我有一个浅灰色的前景和一个绿色的背景?

CustomTreeView.xaml

窗口.xaml

0 投票
2 回答
21993 浏览

wpf - 如何扩展而不是覆盖 WPF 样式

我想在我的应用程序中使用自定义主题,据我所知,我可以通过使用资源字典并在 App.xaml 中引用它来实现这一点。样式会像这样覆盖默认值:

现在我猜默认标签样式被相同的值覆盖,但我所有的标签字体都是绿色的。当我想再次在某个地方设置一个标签的样式时,问题就开始了。当我想像这样更改网格中的其他属性时

我的网格内的所有标签都失去了前景色并再次具有默认值(我不是在上一步中覆盖了默认值吗?)。经过一些尝试,我发现要正确执行此操作,我必须在Style声明中添加另一个属性BasedOn={StaticResource {x:Type Label}}"并且它可以工作。这对我来说有点奇怪,因为现在我将不得不在整个应用程序中重复相同的 BasedOn 代码,这不是样式的工作方式 - 这应该自动完成!例如,在 HTML + CSS 中,样式被继承和合并,而在 WPF 中,它们被替换......

请注意,当我不使用任何样式时,控件仍然可以从某个地方(系统主题?)获得它们的外观。我如何告诉他们在其他地方寻找默认值,这样如果没有任何额外的样式代码,他们会认为默认情况下它们应该是绿色的?

有什么方法可以自动设置 BasedOn 属性?或者也许有一个更好的整体做到这一点?

0 投票
1 回答
1589 浏览

wpf - WPF 从 BasedOn 更改元素属性的值

我有以下风格:

我想有另一种风格,BasedOn上面,但有一个变化 - 我想改变FillTabPanelBorderRectangle 的颜色Rectangle

因此,要使用 BasedOn,我写了以下内容:

Rectangle但我不知道如何从BasedOn样式中更改 TabPanelBorderRectangle 的颜色。

我尝试了类似的东西

但它不起作用(TargetName 属性不能在样式设置器上设置)..

我怎样才能做到这一点?

0 投票
1 回答
77 浏览

wpf - 自定义控件不使用主题

我有我的应用程序设置我们使用皇家主题:

然后我在同一个应用程序项目中有一个 CustomControl :

这是可行的,并且皇家主题的样式应用于 Tabcontrol。但现在我想对选项卡项上的 Padding 稍作更改:

现在 Royal 主题不应用于 TabControl 并返回到 Aero 主题。是什么赋予了?我该如何解决这个问题?

0 投票
1 回答
698 浏览

wpf - 来自资源的样式不适用于菜单项

我已经创建了自定义控件,并且在该样式中菜单项不起作用我使用 BasedOn 键应用样式

通用 XAML 代码片段

该样式不适用于MenuItem,而添加如下代码的样式正在工作,如何使用基于实现这一点,因为在我的scnorio中我使用了多个菜单项

0 投票
0 回答
80 浏览

wpf - 'BasedOn' 属性混淆

我有 3 个项目的解决方案

  • WPF 应用程序(引用其他 2 个,并将主题添加到 App.Resources)
  • 自定义控件库
  • 自定义主题

主题包含以下按钮样式

控制库包含以下内容:

在控件库中,'BasedOn="{StaticResource {x:Type Button}}"' 的评估结果是什么?

我认为它会评估为主题中的 Button 样式,但似乎并非如此,因为没有拾取绿色边框属性。

有人可以解释这里发生的查找规则吗?