wpf – 在某些情况下(使用TranslateTransform时)TemplateBinding不起作用

wpf – 在某些情况下(使用TranslateTransform时)TemplateBinding不起作用,第1张

概述这就是我在 WPF中重现这个问题的方法: 创建自定义控件: public class TestCustomControl : Control{static TestCustomControl(){ DefaultStyleKeyProperty.OverrideMetadata(typeof(TestCustomControl), new FrameworkPropertyMetad 这就是我在 WPF中重现这个问题的方法:

创建自定义控件:

public class TestCustomControl : Control{static TestCustomControl(){    DefaultStyleKeyProperty.OverrIDeMetadata(typeof(TestCustomControl),new FrameworkPropertyMetadata(typeof(TestCustomControl)));}public string Text{    get { return (string)GetValue(TextProperty); }    set { SetValue(TextProperty,value); }}// Using a DependencyProperty as the backing store for Text.  This enables animation,styling,binding,etc...public static Readonly DependencyProperty TextProperty =    DependencyProperty.Register("Text",typeof(string),typeof(TestCustomControl),new PropertyMetadata("Hello"));public double OffSet{    get { return (double)GetValue(OffSetProperty); }    set { SetValue(OffSetProperty,value); }}// Using a DependencyProperty as the backing store for OffSet.  This enables animation,etc...public static Readonly DependencyProperty OffSetProperty =    DependencyProperty.Register("OffSet",typeof(double),new PropertyMetadata(5.0));}

在Generic.xaml文件中为它添加样式:

<Style targettype="local:TestCustomControl"><Setter Property="Template">    <Setter.Value>        <ControlTemplate targettype="local:TestCustomControl">            <GrID>                <TextBlock Text="{TemplateBinding Text}"></TextBlock>                <TextBlock Text="{TemplateBinding Text}">                    <TextBlock.Rendertransform>                        <Translatetransform X="{TemplateBinding OffSet}" Y="{TemplateBinding OffSet}"/>                        <!--<Translatetransform X="10" Y="10"/>-->                    </TextBlock.Rendertransform>                </TextBlock>            </GrID>        </ControlTemplate>    </Setter.Value></Setter>

然后将其添加到主窗口:

<local:TestCustomControl OffSet="32" Text="the off set is not working" FontSize="36">    </local:TestCustomControl>

然后运行应用程序,事实证明“文本”工作正常,但“OffSet”不起作用.
我在windows Phone 7开发环境中尝试了类似的东西,我得到了相同的结果.

我应该如何修改代码以使OffSet工作?

谢谢

解决方法 尝试:

{Binding Offset,relativeSource={relativeSource TemplatedParent}}
总结

以上是内存溢出为你收集整理的wpf – 在某些情况下(使用TranslateTransform时)TemplateBinding不起作用全部内容,希望文章能够帮你解决wpf – 在某些情况下(使用TranslateTransform时)TemplateBinding不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1002785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存