创建自定义控件:
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不起作用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)