В моем проекте WPF много кнопок изображения, но так как я не нашел способ сделать это правильно (мне приходится каждый раз писать те же триггеры и стиль, только разница - источник изображения), мой словарь ресурсов стал очень долго. Есть ли лучший способ сделать это?WPF: Повторно используемый шаблон для кнопок изображения?
Вот образец стиля я использую для моих кнопок:
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
<!-- Some setters -->
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Image Source="Images.png" Stretch="Fill"/>
</Grid>
<ControlTemplate.Triggers>
<!-- Some triggers (IsFocused, IsMouseOver, etc.) -->
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Спасибо :)
Спасибо, именно то, что мне нужно! – Shugah
В этом примере показана одна серьезная проблема с пользовательскими элементами управления в WPF. Как только я переоцениваю ControlTemplate, вся тематика в основном сломана. Как я могу сохранить все темы исходной кнопки во всех средах? Конечно, я могу скопировать исходный элемент ControlTemplate Button в свой ImageButton, но это будет работать только для общей темы. Я должен был бы предоставить шаблоны управления для всех тем, которые я хочу поддержать. Но это ломается, если есть тема, которую я не знал. – bitbonk
@bitbonk, да, это один из главных недостатков этой системы шаблонов ... К сожалению, я не знаю ни одного хорошего решения. –