У меня есть CustomButton (назовем его MetroButton), который происходит от Button и добавляет 3 свойства: Size, ImageSource и Text. Размер определяет ширину и высоту элемента управления одновременно.ResourceDictionary Ссылка на шаблон для Self
MetroButtons состоит из шаблона - теперь я хочу вырезать шаблон в автономный ResourceDictionary.xaml - но как я могу ссылаться на ширину и высоту кнопки на пользовательское свойство «Размер»?
<ControlTemplate TargetType="Button">
<Border x:Name="_border"
Width="{Binding Size,
ElementName=_metroButton,
UpdateSourceTrigger=PropertyChanged,
Mode=TwoWay}"
Height="{Binding Size,
ElementName=_metroButton,
UpdateSourceTrigger=PropertyChanged,
Mode=TwoWay}"
Background="{StaticResource DefaultButtonBackgroundColor}"
BorderBrush="{StaticResource DefaultButtonBorderColor}"
BorderThickness="{TemplateBinding BorderThickness}">
В данный момент я в состоянии использовать ELEMENTNAME, поскольку шаблон определяется непосредственно внутри класса MetroButton - если шаблон определен вне класса не существует никакой возможности ссылаться на ELEMENTNAME (AFAIK) - и с помощью
RelativeSource={RelativeSource Self}
также не приведет к ожидаемому результату - тогда стили не будут применяться вообще.
Любые решения?
Почему вы не прикладывая шаблон в теме по умолчанию XAML в? Затем шаблон управления будет нацелен на тип «MetroButton», и вы можете просто использовать «TemplateBinding». – Jai
Omg, вы так правы - как описано, я хотел поместить шаблон в Default.xaml, но я забыл, что тогда я могу напрямую настроить MetroButton. Если вы примете свой комментарий и поместите его в ответ, я установлю его как решение :) – C4p741nZ
Хорошо, к сожалению Это не так просто - Idk, почему это сработало на первый взгляд. MetroButton определяется как кнопка (