0

我不知道出了什么问题。我希望将 DropShadowEffect 的颜色绑定到 TextBox 的前景色。当我使用 ElementName 绑定属性进行绑定时,它可以正常工作,但我需要使用 RelativeSource(在 VisualThree 中查找第一个 TextBox 对象)。

下面是我的代码(它是 Silverlight 5):

<Grid x:Name="LayoutRoot" Background="White">

<TextBox x:Name="TextBox1" Foreground="Blue" MinWidth="100" HorizontalAlignment="Center" VerticalAlignment="Center">
    <TextBox.Effect>
        <DropShadowEffect x:Name="ShadowEffect" BlurRadius="60" Direction="345" ShadowDepth="50" Color="{Binding Path=Foreground.Color, RelativeSource={RelativeSource AncestorType=TextBox}}"></DropShadowEffect>
    </TextBox.Effect>
</TextBox>

4

1 回答 1

0

U 应该使用 {RelativeSource self},因为您的效果属性依赖于 TextBox("TextBox1"),而不是 TextBox 父级。

<TextBox x:Name="TextBox1" Foreground="Blue" MinWidth="100" HorizontalAlignment="Center" VerticalAlignment="Center"> 
<TextBox.Effect> 
    <DropShadowEffect x:Name="ShadowEffect" BlurRadius="60" Direction="345" ShadowDepth="50" Color="{Binding RelativeSource={RelativeSource self}, Path=Foreground.Color}"></DropShadowEffect> 
</TextBox.Effect> 

于 2012-04-18T06:22:25.877 回答