gpt4 book ai didi

.net - 为什么不能绑定(bind)到 Silverlight 中的 TextDecoration?

转载 作者:行者123 更新时间:2023-12-02 00:30:16 25 4
gpt4 key购买 nike

我的 Silverlight .XAML 定义中有 2 个 TextBlock。我希望第二个 TextBlock 模仿第一个 TextBlock 的行为。我发现最简单的方法是通过元素数据绑定(bind)。这一切都很好,但是当我尝试绑定(bind)到 TextDecoration 属性时出现以下错误:

Unable to cast object of type 'System.Windows.Data.Binding' to type 'System.Windows.TextDecorationCollection'.

作为引用,我的 XAML 如下所示:

<TextBlock x:Name="TextBlock1" Text="Booya" />
<TextBlock x:Name="TextBlock2" Text="AnotherBooya" FontSize="{Binding FontSize, ElementName=TextBlock1}" FontFamily="{Binding FontFamily, ElementName=TextBlock1}" TextDecorations="{Binding TextDecorations, ElementName=TextBlock1}"/>

如果我删除 TextDecorations="{Binding TextDecorations, ElementName=txt_FanName}"部分,则代码编译正常。这是因为 TextDecoration 属性可以接受 Null 值而其他属性(即 FontWeight)不能吗?

我的问题是: 为什么会这样?是否有任何解决方法(除了在代码隐藏中手动设置)?

最佳答案

这似乎是设计器中的错误。在运行时,绑定(bind)工作正常。然而,它在设计时是一个非常令人沮丧的错误,因为设计变得毫无用处。

我发现的一个解决方法是创建一个“Identity”转换器,该转换器只返回未修改的输入值:-

public class IdentityConverter : IValueConverter
{

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
}

在本地资源节点中拥有其中之一,并在绑定(bind)上使用它。异常不会立即消失,但在运行应用程序并返回设计后,设计师似乎很乐意进行渲染,但绑定(bind)下方的蓝色波浪线仍然存在。

一旦您对整个 Xaml 的工作感到满意,因此您无需进行进一步的设计,您就可以删除这个杂乱无章的东西。

关于.net - 为什么不能绑定(bind)到 Silverlight 中的 TextDecoration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7259694/

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