Мое приложение будет работать на компьютерах с сенсорными очками, которыми управляют сотрудники милиции во время вождения. Я делаю все графические элементы более крупными, чтобы их можно было использовать людьми с колбасными пальцами, такими как мои собственные и больше.Изменение размера флажка и галочки в нем
У меня есть CheckBox, который должен появиться на экране. Мне нужно масштабировать размер флажка и галочку больше. Я попытался изменить шаблон флажка в Expression Blend, щелкнув правой кнопкой мыши и выбрав Edit Tempate | Редактирование копии. Я установил копию, чтобы она применима ко всем флажкам.
Я смог сделать коробку больше по шаблону, привязав к ней высоту & Свойства ширины для ActualHeight. Тем не менее, галочка не увеличилась в результате этого и находится в верхнем левом углу. По крайней мере, это выглядит неправильно.
Когда я редактировал шаблон, вот Xaml я вернулся:
<Style TargetType="{x:Type CheckBox}">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="Background" Value="{StaticResource CheckBoxFillNormal}"/>
<Setter Property="BorderBrush" Value="{StaticResource CheckBoxStroke}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="FocusVisualStyle" Value="{StaticResource EmptyCheckBoxFocusVisual}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type CheckBox}">
<BulletDecorator Background="Transparent" SnapsToDevicePixels="true">
<BulletDecorator.Bullet>
<Microsoft_Windows_Themes:BulletChrome BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" IsChecked="{TemplateBinding IsChecked}" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderPressed="{TemplateBinding IsPressed}" HorizontalAlignment="Center" VerticalAlignment="Center" Width="{TemplateBinding ActualHeight}" Height="{TemplateBinding ActualHeight}"/>
</BulletDecorator.Bullet>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</BulletDecorator>
<ControlTemplate.Triggers>
<Trigger Property="HasContent" Value="true">
<Setter Property="FocusVisualStyle" Value="{StaticResource CheckRadioFocusVisual}"/>
<Setter Property="Padding" Value="4,0,0,0"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Expression Blend не позволит мне ЭТИО шаблон в BulletChrome в. Варианты «Редактировать текущее» и «Редактировать выбор» отключены.
Как достичь того, что я хочу сделать?
Тони
Эти страницы на MSDN делают ** не ** дают вам шаблоны по умолчанию, но составленные примеры. ([См. Это по умолчанию] (http://stackoverflow.com/questions/1559261/control-template-for-existing-controls-in-wpf)) –
@ H.B. Спасибо, я не знал, что эти примеры не были дефолтом. Это объяснит некоторые несоответствия, которые я заметил с ними. – Stewbob
Обсудив это с моим боссом, я собираюсь принять настройку еще дальше. Он хочет, чтобы флажки выглядели больше как кнопки Radio Buttons, а не раунд. Он хочет, чтобы граница была заполнена темным цветом приличного размера, чтобы ее было легко увидеть. Как бы то ни было, флажки слишком легко пропустить, пока вы едете. Важное значение имеет их выделение. –