如何在控件模板中获取目标的属性值

时间:2014-02-11 21:09:13

标签: c# wpf xaml controltemplate

假设我有以下内容:

<ControlTemplate x:Key="MyButtonTemplate" TargetType="{x:Type Button}">
   <Grid>
      <Rectangle Width="100" Height="20" />
   </Grid>
</ControlTemplate>

<Button Template="MyButtonTemplate" Width="25" />
<Button Template="MyButtonTemplate" Width="50" />
<Button Template="MyButtonTemplate" Width="75" />

我需要对控件模板做什么才能让矩形成为按钮的宽度而不是每次硬编码100?有没有办法让我从我的控件模板中访问我的目标类型的属性值?

感谢。

2 个答案:

答案 0 :(得分:2)

这个怎么样:

 <Rectangle Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" />

答案 1 :(得分:2)

根本不要为Width指定HeightRectangle,并将其扩展到Button的大小:

<ControlTemplate TargetType="{x:Type Button}">
   <Grid>
      <Rectangle/>
   </Grid>
</ControlTemplate>