Изменить размер флажка WPF - PullRequest
19 голосов
/ 06 июня 2011

Я хочу сделать больший флажок в WPF.

Я обнаружил, что мне нужно создать шаблон элемента управления, один из примеров которого находится здесь: http://msdn.microsoft.com/en-us/library/ms752319.aspx

Если я использую этот код, флажок не похож на внешний вид по умолчанию. Все, что я хочу сделать, это изменить атрибуты ширины и высоты границы.

Мне нужен шаблон элемента управления, который выглядит точно так же, как по умолчанию, оттуда я просто изменю ширину и высоту. Кто-нибудь знает, где я могу найти один? Или лучший подход?

Ответы [ 5 ]

51 голосов
/ 07 февраля 2012

Как насчет этого?

<CheckBox>
    <CheckBox.LayoutTransform>
        <ScaleTransform ScaleX="2" ScaleY="2" />
    </CheckBox.LayoutTransform>
</CheckBox>

Вы можете использовать двойные значения для ScaleX и ScaleY, если целочисленные значения не совсем такие, как вы хотите.

4 голосов
/ 06 июня 2011

Вот возможное решение, найденное на MSDN:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/98cf8a65-f4ca-4ff5-9851-c2989b91a013

3 голосов
/ 06 июня 2011

Шаблоны по умолчанию можно найти на MSDN (см. Ссылку Default WPF Themes).

Обязательно добавьте пространство имен соответствующих тем в файл xaml для ссылки на необходимые элементы управления темой .

<theme:BulletChrome Background="{TemplateBinding Background}"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    RenderMouseOver="{TemplateBinding IsMouseOver}"
                    RenderPressed="{TemplateBinding IsPressed}"
                    IsChecked="{TemplateBinding IsChecked}"/>

Я не уверен, что если вы можете просто указать это универсально, вам может понадобиться добавить ссылки тоже.

Проблема в том, что вы не можете указатьлибо размер границы, так как элемент управления его инкапсулирует.

0 голосов
/ 09 июня 2019

Лучшее решение, которое я нашел, - это обернуть его во ViewBox:

<Viewbox Height="46" HorizontalAlignment="Left" >
    <CheckBox Content="Some Content"/>
</Viewbox>
0 голосов
/ 06 июня 2011

Вы можете использовать визуальное дерево флажка и, когда нужные элементы существуют, изменять их во время выполнения, явно задавая ширину и высоту. Используйте Snoop Питера Блуа или какой-нибудь эквивалент, чтобы увидеть, есть ли именованные элементы, к которым вы можете получить доступ с помощью FindName; в противном случае вам нужно будет угадать (например, некоторые стили могут иметь два элемента Border, и вы должны выбрать один) и пройтись по визуальному дереву явно.

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

...