将静态资源样式应用于转换器中创建的 UIElement

发布于 2024-12-03 10:05:26 字数 258 浏览 1 评论 0原文

我将 ItemsControlItemsSource 绑定到 Textbox,然后使用转换器基于以下内容创建 UIElement 对象: TextboxText 属性。我还有一个静态资源样式,我想将其应用于我创建的元素。

我遇到的问题是如何将转换器中创建的项目的样式设置为静态资源,因为我无权访问转换器类中的静态资源。

I am binding the ItemsSource of an ItemsControl to a Textbox and then using a converter to create UIElement objects based on the Text property of the Textbox. I also have a static resource style that I want to apply to the elements I create.

The problem I'm having is how to set the style of the items created in the converter to the static resource since I don't have access to the static resources in my converter class.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柠檬色的秋千 2024-12-10 10:05:26

要在 Converter 中使用 StaticResource,您可以将 Style 作为 ConverterParameter 发送。

如果您已经在使用 ConverterParameter,您可以使 Converter 派生自 DependencyObject,添加一个依赖属性并将其设置为 Converter 创建时的样式

但如果您知道资源的密钥,最简单的解决方案可能是使用DynamicResource

以下 Xaml

<UIElement Style="{DynamicResource styleKey}" />

相当于以下 C# 代码

myUIElement.SetResourceReference(StyleProperty, "styleKey");

To use StaticResource in the Converter you could send the Style as ConverterParameter.

If you're already using the ConverterParameter you could make the Converter derive from DependencyObject, add a Dependency Property and set it to the Style on the creation of the Converter.

But the easiest solution is probably to use DynamicResource instead if you know the key of the resource.

The following Xaml

<UIElement Style="{DynamicResource styleKey}" />

is equivalent to the following C# code

myUIElement.SetResourceReference(StyleProperty, "styleKey");
哆啦不做梦 2024-12-10 10:05:26

不可能完成的任务! :) 我认为您可以使用 ConverterParameter 作为静态资源。一切都会好起来的!

Mission impossible! :) you can use ConverterParameter as your static resource, I think. and all will be ok!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文