如何在controltemplate中使用模板化控件的rendertransform

时间:2010-09-13 13:42:24

标签: silverlight templates rendertransform

在Silverlight 4中: 我正在将Usercontrol转换为模板化控件。在我的Usercontrol中,我有一个RenderTransform

<src:UserControlView.RenderTransform>
    <TransformGroup>
        <ScaleTransform/>
        <SkewTransform/>
        <RotateTransform/>
        <TranslateTransform X="-478" Y="-478"/>
    </TransformGroup>
</src:UserControlView.RenderTransform>

但现在我在Controltemplate中收到错误消息:

错误5在“MyControl”类型中找不到可附加属性“RenderTransform”。 ... \主题\ Generic.xaml

                <local:MyControl.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform />
                        <SkewTransform />
                        <RotateTransform />
                        <TranslateTransform X="-478"
                                            Y="-478" />
                    </TransformGroup>
                </local:MyControl.RenderTransform>

当地:MyControl是一次绝望的尝试,因为我不知道如何或在哪里看。我的MyControl继承自Control,UIElement上有一个RenderTransform,所以它必须以某种方式找到它?

1 个答案:

答案 0 :(得分:2)

我假设您只是尝试设置默认的渲染变换属性?如果是这样,您只想以通用样式实现setter:

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/client/2007" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:SilverlightApplication1"
>
    <Style TargetType="local:MyControl">
        <Setter Property="RenderTransform">
            <Setter.Value>
                <TransformGroup>
                    <TranslateTransform X="-478" Y="-478" />
                </TransformGroup>
            </Setter.Value>
        </Setter>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="local:MyControl">
                    // Your actual template goes here
                </ControlTemplate>
            </Setter.Value>            
        </Setter>
    </Style>
</ResourceDictionary>

如果没有,请显示更多您当前的来源/ Xaml,我将更正此示例。