Подтвердить что ты не робот

Изменить размер флажка WPF

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

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 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>