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