gpt4 book ai didi

c# - 如何在 C# 中读取 Windows.UI.XAML.Style 属性

转载 作者:行者123 更新时间:2023-11-30 12:31:35 25 4
gpt4 key购买 nike

我正在编写一个类,该类将 HTML 文档转换为可在 Windows 8 应用程序中与 RichTextBlock 一起使用的 Paragrpahs 列表。我希望能够为该类提供 XAML 中定义的样式列表,该类将从该样式中读取有用的属性并应用它们。

如果我有 Windows.UI.XAML.Style style,我该如何从中读取属性?我试过了

var fontWeight = style.GetValue(TextElement.FontWeightProperty)

对于在 XAML 中使用 TargetProperty="TextBlock"定义的 style 但这失败并出现异常

最佳答案

你可以试试这个:

var fontWeightSetter =
style.Setters.Cast<Setter>().FirstOrDefault(
setter => setter.Property == TextElement.FontWeightProperty);

var fontWeight =
fontWeightSetter != null ?
(FontWeight)fontWeightSetter.Value :
FontWeights.Normal;

或者检查是否可行:

public static class StyleExtensions
{
// Untested
public static object GetPropertyValue(this Style style, DependencyProperty property)
{
var setter =
style.Setters.Cast<Setter>().FirstOrDefault(
s => s.Property == property);
var value = setter != null ? setter.Value : null;

if (setter == null &&
style.BasedOn != null)
{
value = style.BasedOn.GetPropertyValue(property);
}

return value;
}
}

关于c# - 如何在 C# 中读取 Windows.UI.XAML.Style 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13088851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com