问题标签 [dynamicresource]

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

wpf - 是否可以在 MultiBinding 中使用 DynamicResource?

在这种情况下,我希望使用在资源字典中声明的字符串作为Text属性绑定的一部分。仅绑定单个动态资源字符串不是问题:

但是,如果您需要在MultiBinding上使用StringFormat ,您很快就会遇到问题,因为您需要插入动态文本或想要组合多个字符串。例如,如果我的 MultiBinding 看起来像这样:

我可以从指定的资源文件中注入string1string2绑定文本,那里没有问题。但是我找不到以相同方式使用动态资源中的字符串的方法。(我正在使用这种方法将公司和产品名称注入到合并资源字典中的文本中)。

使用TextBlock ,我可以通过对 TextBlock 内容(参考)使用多个Run项目来规避此问题:

但这在需要将动态资源绑定到Window Title属性时无济于事。有没有办法通过(创造性的,如有必要)使用现有的标记扩展(如x:Static等)来实现这一点?还是我们必须编写自己的标记扩展来实现这一点?

0 投票
3 回答
2658 浏览

c# - 如何在触发器运行时重新计算 WPF 资源?

简而言之:我有一个Style. 它使用TemplateBinding了相当多的参数来使其参数化,而不是一遍又一遍地重复自己。但是,当使用该样式的触发器并且在该触发器的 setter 中使用资源时,它就不会出现!甚至没有显示默认值。这是一个复制此问题的小程序:

测试字典.xaml

主窗口.xaml

主窗口.xaml.cs

而不是使用 a TemplateBinding,我还尝试了这个:

它仍然没有工作。我知道我可能做错了什么,但问题是:它是什么?

0 投票
2 回答
2001 浏览

c# - 为什么我不能将 DynamicResource 与 DataGridColumn.CellStyle 一起使用

因此,例如,我有一些具有简单模型的 MVVM WPF 应用程序:

和创建 3 行的简单视图模型:

在视图中,我有一个DataGrid手动定义的列,并且对于我设置的每一列CellStyle。两种样式都在Window.Resources块中定义。但是对于第一列,我使用StaticResourceand 作为第二列DynamicResource

查看 XAML:

所以问题是:在第二列中,资源没有应用于该列。

见第二栏

0 投票
1 回答
3758 浏览

c# - wpf - 上下文菜单 - 在动态资源中重用静态资源

我有一个用户控件,其资源如下:

s在DataTemplateDevExpress 中使用FlowLayoutControl

在我的场景中,我的FlowLayoutControl. 一个使用模板mergedDocDisplayGrid,另一个使用singleDocDisplayGrid

数据在模板中正确显示,鼠标活动和拖放等其他功能已成功实现

在其中一个项目上显示上下文菜单有效,但如果我随后尝试在另一个项目上再次显示上下文菜单,则会出现以下异常:

内部异常是不言自明的,我相信我可以在后面的代码中解决这个问题,但是我觉得必须在 XAML 中正确地做到这一点,因为重用菜单项很重要我

任何帮助将不胜感激!谢谢

0 投票
5 回答
5607 浏览

wpf - DynamicResource 颜色不适用于边框上的 BorderBrush - 错误?

视觉工作室 2010 | .NET/WPF 4.0

我认为这可能是一个 WPF 错误,但我似乎找不到关于它的错误报告。为了弥补我只是错过了一些明显的东西的可能性,我转向 stackoverflow 寻求答案!

考虑这个 xaml(代码隐藏中没有任何内容):

在设计器中,它按预期呈现。外边框有一个大的蓝色边框和一个红色背景,内边框有一个大的蓝色边框。伟大的。

当我运行代码时,外边框没有边框 - 看起来它只是没有加载。背景正确设置为红色。同时,内边框确实正确加载了它的蓝色边框。

如果我将所有“DynamicResource”更改为“StaticResource”,它会在运行时正确呈现。这种不一致确实困扰着我,我无法弄清楚。\

所以:

  1. 为什么 DynamicResource 不适用于 BorderBrush?
  2. 鉴于#1,为什么适用于背景?
  3. 为什么在资源中明确定义纯色画笔似乎可以解决问题?

编辑:

看起来这是 MS 决定不修复的错误(感谢Sheridan的链接):http ://connect.microsoft.com/VisualStudio/feedback/details/589898/wpf-border-borderbrush-does-not-see-动态资源的变化

0 投票
1 回答
523 浏览

wpf - 使用 DynamicResource 填充颜色

我想在我的 xaml 中做这样的事情ResourceDictionary

但是颜色只接受像#xxxxx 这样的东西作为价值。

有什么想法可以达到我的目标吗?

谢谢!

0 投票
1 回答
2233 浏览

wpf - 与动态资源一起使用时的前台问题

对于我的自定义控件,我使用 Dynamic 资源来设置 Foreground 属性。最初,当我运行应用程序时,Foreground 属性未设置为我的控件。当我动态更改值时,前景被正确应用。我该如何解决这个问题?

PS:简单示例WpfApplication4

主窗口.xaml

主窗口.xaml.cs

通用的.xaml

0 投票
1 回答
597 浏览

c# - 如何在 C# 中控制 DynamicResource 的实现

在我的程序中,我想DynamicResource从代码隐藏中实现一个。现在我正在将 a 绑定Content到我的数据模型中的Label一个string属性......

这个问题之后,我string在我的数据模型中实现了这样的:

我想让它每次用户更改资源字典时,这个string值都会更新为新值。

我试图达到与这样的效果相同的效果:

请让我知道我做错了什么,以及如何正确实现这样的事情。

更新 1:根据@HighCore 的要求,这是我的代码示例,我只能访问string来自代码隐藏(或 C# 类)的值

(这是TreeView我的 MainWindow 中的 ViewModel 的一部分)

这是上面的xaml TreeView

更新 2:我有另一个完美的例子来说明我的问题......

我有一个绑定到我的数据模型中comboBox的一个。像这样:itemsSourceObservableCollection

xml:

如果我想让它comboBox在资源字典更改时更改此项目,看起来我需要在 C# 而不是 xaml 中处理它。

0 投票
1 回答
1405 浏览

c# - 根据颜色更改图像,wpf

我有以下情况。某处有DynamicResource颜色。这种颜色决定了窗口的背景,并根据我想选择要显示的正确图标(亮或暗)的颜色。

我想象以下场景:

  • 颜色变化,引发我班级的变化
  • 我的班级检查,应该选择哪个图标集
  • 它强制这些图标的所有用户重新加载它们。

我想,这应该可以使用 WPF 机制来实现。问题是,我不太清楚,如何构建架构,它将进行这样的处理。

  1. 捕捉颜色变化。我想,我可以编写一个带有DependencyProperty调用的类,例如,BackgroundColor然后通过DynamicResource. 这样我就可以使用PropertyChangedCallback.
  2. 内部处理很容易。
  3. 我必须公开我的图标,以便它们可以通过该DynamicResource机制附加。如何?通过某种收藏?每个都有自己的 DependencyProperty?
  4. 我必须通知这些图标的所有用户,它们已更改。如何?通过 IObservableCollection?在代表图标的每个属性上调用 NotifyPropertyChanged?也许以其他方式?

如果有更简单的方法来实现我提出的目标,我会很高兴听到它:)

0 投票
2 回答
825 浏览

c# - 在运行时更改资源

假设我们有以下字典:

该字典在自定义控件的某处合并:

如何在应用程序运行时从后面的代码中完全更改资源“测试”的值?