2014-02-11 2 views
1

Предположим, что у меня есть следующие:Как получить значение свойства цели внутри шаблона управления

<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

Как об этом:

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

Не указывайте Width или Height для Rectangle на всех, и пусть тянутся к размеру Button:

<ControlTemplate TargetType="{x:Type Button}"> 
    <Grid> 
     <Rectangle/> 
    </Grid> 
</ControlTemplate> 
Смежные вопросы