问题标签 [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 投票
2 回答
1151 浏览

wpf - 是否可以将 clr:string 的 DynamicResource 绑定到另一个源而不是文字?

我只是在学习,并且很好奇我是否可以将string文字绑定centralRes到另一个控件的 Text 属性(如src.Text),所以当它更新时,所有绑定到它的东西都会dst自动更新。

几乎就像一个信息的中心枢纽。这可能吗?

我想要的示例:

0 投票
1 回答
1499 浏览

wpf - 如何为我的自定义控件提供递归数据模板

我有一个自定义控件,它基本上是一种 TreeView。现在问题是我需要在我的 TreeView 控件中有任何级别的细节,所以我想出了以下数据模板

我有以下 Generic.xaml

这是我的自定义控件构造函数

这就是控制的样子

控制

这是我认为的问题 对于同一模板的递归调用,我正在使用DynamicResource. 这从未对我有用,实际资源从未被调用过。如果我将其更改为StaticResource,它将无法编译,因为它不会看到自己。我如何解决它 ?

完整的解决方案可以在这里下载

0 投票
1 回答
3067 浏览

wpf - 动态资源不工作

我有一个 CustomControl 库,其控件定义如下:

哪个工作正常。

但是,如果我将“StaticResource”更改为“DynamicResource”,红色不再拾取?

为什么是这样?

0 投票
2 回答
1707 浏览

c# - 如何在 WPF 中的代码中复制资源引用?

在我的应用程序中,我有一个颜色资源。我有一个元素使用该颜色作为 xaml 中的动态资源。

在代码中,我想复制这个资源引用。

但是,SetResourceReference 仅适用于 FrameworkElements 或 FrameworkContentElements。SolidColorBrush 只是一个 Freezable。另外,我不知道如何在后面的代码中获取资源引用。

有没有办法在 WPF 中做到这一点,以便两种颜色同时改变?在我的实际应用程序中,问题并不是那么简单,所以我不能只在 xaml 中添加第二个 DynamicResource。

0 投票
1 回答
55 浏览

wpf - 如何将内容动态放入控件中

我在 XAML 中有两个几乎相同的 GUI 结构,不同之处在于一个 StackPanel 在各自的结构中有一个 Image 和一个 Rectangle,StackPanel 还包含其他内容。我只想写一次孔结构,并拥有一个放置图像或矩形的动态资源。代码基本上是这样的:

是否有可能以这种方式动态分配任何类型的占位符(而不是 Object-Tag)?

0 投票
1 回答
3611 浏览

c# - How to change a DynamicResource from C# code?

I have a simple "Play/Pause" button that shows the "play" icon at the start of the application. Here's its code:

What I want to do is change the play icon to a pause icon when it's pressed. All I have to do is change the content to {DynamicResource appbar_control_pause}. However, when I do the following:

it shows just the string literally, inside the button. How could I change that property?

0 投票
1 回答
967 浏览

wpf - 如何在 WPF 中通过 DynamicResource 打破 TextBlock 的文本

在这里,我在页面中有一个资源

我想使用 DynamicResource 本地化我的应用程序,因此,我的 TextBlock 的 Text 属性是对此 DynamicResource 的引用

我更喜欢第一行的“Hello”和第二行的“The world”,所以我使用“”,但它被视为一个空格。

如果我直接将字符串“Hello The world”分配给 TextBlock.Text

它正确中断。

那么,如何在 DynamicResource 中打破字符串?

0 投票
0 回答
1120 浏览

wpf - WPF 静态资源与动态资源

我的 Xaml 如下

在我后面的代码中,它看起来像

我的问题是,如果我先单击 ChangeBrushObject 按钮,它会将动态按钮更改为黄色,然后单击 ChangeColorProperty 按钮,它只会将动态按钮更改为蓝色,而不影响静态按钮。

但是,如果我自己单击 ChangeColorProperty 按钮,它会将静态和动态按钮都更改为蓝色。

为什么它会这样?尝试将新对象分配给已被控件引用为静态资源的资源时,WPF 不会引发任何警告?

我还测试了动态资源引用的不存在资源。正如预期的那样,如果 StaticResource 引用了不存在的资源,Xaml 将在编译时抱怨,而 DynamicResource 不会。但是,如果我单击 GenerateResourceForDynamic 按钮,它会显示绿色作为背景,但随后会消失,然后再次出现并重复。为什么会这样?

编辑:添加了冻结资源,再次出现奇怪的行为。如果我单击 ChangeFreezeColorProperty 按钮,它将通过异常。如果我单独单击 ChangeFreezeBrushObject,它将更改 FreezeBrushDynamic 按钮颜色。但是,如果我单击 ChangeFreezeBrushObject,然后单击 ChangeFreezeColorProperty,则不会引发异常。

我认为进行资源冻结将使与资源链接的对象的属性为只读。这就是为什么在更改属性时,它将通过异常抱怨只读状态。然而 freeze 并不能阻止我们改变对象本身。

0 投票
1 回答
3920 浏览

c# - 如何通过WPF中的代码将字符串绑定到动态资源

我目前正在开发一个项目,我使用 Caliburn 在 View 和 ViewModel 之间进行绑定。为了能够在运行时切换语言,我有单独的资源文件,其中包含应用程序中使用的所有字符串。一些例如 TextBlock 文本绑定绑定到字符串资源之一,如下所示:

SampleView.xaml <TextBlock Text={DynamicResource Foo.Bar.Baz} .../>

Language.en-US.xaml <system:String x:Key="Foo.Bar.Baz">Im a string</system:String>

当我将应用程序的文化更改为不同的语言时,与 Foo.Bar.Baz 的动态绑定会使字符串在运行时更新为新语言。伟大的!

但是,应用程序中的一些文本属性使用 Caliburn 绑定到 ViewModel 中的字符串,如下所示:

SampleView.xaml <TextBlock Text={Binding SampleText} .../>

SampleViewModel.cs public string SampleText { get; set; }

的值SampleText设置为来自 Language.en-US.xaml 的字符串资源,如下所示: ... SampleText = Application.Current.FindResource("Foo.Bar.Baz") as string; ...

不幸的是,当我更改应用程序文化时,字符串SampleText没有更新。

因此,问题是: 如何将 SampleText 设置为 Language.en-US.xaml 中的字符串资源,当我更改应用程序文化时它会自动更新?

注意:通过对此 StackOverflow 问题的评论,我了解到可以通过这样的绑定: SampleText = Application.Current.Resource["Foo.Bar.Baz"] as string; 但是,这对我不起作用。

0 投票
1 回答
232 浏览

wpf - 有没有办法让 DynamicResource 对于 ResourceDictionary 中的 Freezable 是动态的?

我在 Brushes.xaml 中有这个:

并在 Generic.xaml 中像这样使用它:

问题是 wpf 冻结了画笔,所以DynamicResource没有效果。

有没有一种干净的方法来解决这个问题?我只能想到讨厌的黑客。