2

我有以下代码。为什么Text-Binding 有效而TranslateTransform.X无效?

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Class="WpfApplication2.MainWindow"
        Title="MainWindow">

    <Window.Resources>
        <Style TargetType="TextBlock" x:Key="txtStyle">
            <Setter Property="HorizontalAlignment" Value="Left"/>

            <Setter Property="Text" Value="{Binding RelativeSource={RelativeSource Self}, Path=Width, Mode=OneWay}"/>

            <Setter Property="RenderTransform">
                <Setter.Value>
                    <TranslateTransform X="{Binding RelativeSource={RelativeSource Self}, Path=Width, Mode=OneWay}"/>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>

    <StackPanel>
        <TextBlock Canvas.Top="50" Background="Lime" Width="200" Style="{StaticResource txtStyle}"/>
        <TextBlock Canvas.Top="100" Background="LightBlue" Width="300" Style="{StaticResource txtStyle}"/>
    </StackPanel>
</Window>
4

1 回答 1

2

你需要一个FindAncestor绑定。

<TranslateTransform X="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=TextBlock}, Path=Width, Mode=OneWay}"/>
于 2015-06-08T07:51:21.290 回答