修复样式

时间:2015-06-04 09:05:01

标签: wpf xaml

运行应用程序时,输出面板中出现绑定错误:

  

System.Windows.Data错误:4:无法找到与引用'RelativeSource FindAncestor绑定的源,AncestorType ='System.Windows.Shapes.Ellipse',AncestorLevel ='1''。 BindingExpression:路径=宽度;的DataItem = NULL; target元素是'TranslateTransform'(HashCode = 59715965); target属性为'X'(类型'Double')

我正在尝试创建一个样式,以便在Canvas中的所有省略号上应用TranslateTransform。绑定工作,但当我启动我的应用程序时,我在输出面板中收到错误。我该如何解决这个错误?

编辑:绑定确实有效,我只是想摆脱Visual Studio输出窗口中的错误。

如果我将RenderTransform从样式移动到Ellipse标记,则错误消失,但我希望在样式中使用此变换,因为它需要应用于许多省略号。

这是我正在使用的XAML:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Class="WpfApplication1.MainWindow"
        Title="MainWindow" Height="300" Width="300">
    <Window.Resources>
        <Style TargetType="Ellipse">
            <Setter Property="RenderTransform">
                <Setter.Value>
                    <TranslateTransform>
                        <TranslateTransform.X>
                            <Binding 
                                    RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type Ellipse}}"
                                    Path="Width"/>
                        </TranslateTransform.X>
                    </TranslateTransform>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Canvas>
        <Ellipse Width="100" Height="100" Fill="Red" />
    </Canvas>
</Window>

1 个答案:

答案 0 :(得分:1)