Изменить размер флажка 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; если нет, вам придется угадать (например, некоторые стили могут иметь два элемента границы, и вы должны выбрать один) и явно ходить по визуальному дереву.

имейте в виду, что ваш код не должен ничего делать, если вы не найдете элементы вы ищете.