Изменить размер флажка WPF
Я хочу сделать больший флажок в WPF.
Я обнаружил, что мне нужно сделать шаблон, пример которого находится здесь: http://msdn.microsoft.com/en-us/library/ms752319.aspx
Если я использую этот код, флажок не похож на внешний вид по умолчанию. Все, что я хочу сделать, это изменить атрибуты ширины и высоты границы.
Мне нужен шаблон управления, который выглядит точно так же, как по умолчанию, оттуда я просто изменю Ширина и высота. Кто-нибудь знает где я могу его найти? Или лучший подход?
4 ответов
Как насчет этого?
<CheckBox>
<CheckBox.LayoutTransform>
<ScaleTransform ScaleX="2" ScaleY="2" />
</CheckBox.LayoutTransform>
</CheckBox>
вы можете использовать двойные значения для ScaleX и ScaleY, если целочисленные значения не совсем то, что вы хотите.
вот возможное решение, найденное на msdn:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/98cf8a65-f4ca-4ff5-9851-c2989b91a013
по умолчанию ControlTemplates можно найти на MSDN (см. Default WPF Themes
ссылка).
обязательно добавьте соответствующее пространство имен themes в файл xaml для ссылки на необходимое тема управления.
<theme:BulletChrome Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
RenderMouseOver="{TemplateBinding IsMouseOver}"
RenderPressed="{TemplateBinding IsPressed}"
IsChecked="{TemplateBinding IsChecked}"/>
Я не уверен, что вы можете просто указать его в общем виде, вам также может потребоваться добавить ссылки.
проблема здесь в том, что вы не можете указать размер границы, так как элемент управления инкапсулирует его.
вы можете использовать визуальное дерево флажка, и когда элементы, которые вы хотите, существуют, измените их во время выполнения, явно установив ширину и высоту. Используйте snoop Питера Блуа или какой-то эквивалент, чтобы увидеть, есть ли именованные элементы, к которым вы можете получить доступ с помощью FindName; если нет, вам придется угадать (например, некоторые стили могут иметь два элемента границы, и вы должны выбрать один) и явно ходить по визуальному дереву.
имейте в виду, что ваш код не должен ничего делать, если вы не найдете элементы вы ищете.