Уже не первый день бьюсь с данной мне проблемой. При изменении FontSize
у CheckBox
в WPF, текст изменяет свой размер, но окошко с галочкой остается без изменений. И очень неприятно работать с вот с таким вот контролом:
В англоязычном SO нашёл вот такой кусочек разметки, которая как я понял переопределяет ПОЛНОСТЬЮ CheckBox. И где-то там и размеры окошка для галочки. Но галочка не меняет размер. И при добавлении вот этого кода в ресурсы (кода много, скрываю):
<Style x:Key="FocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="2"
SnapsToDevicePixels="true"
Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"
StrokeThickness="1"
StrokeDashArray="1 2" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<SolidColorBrush x:Key="OptionMark.Static.Background"
Color="#FFFFFFFF" />
<SolidColorBrush x:Key="OptionMark.Static.Border"
Color="#FF707070" />
<Style x:Key="OptionMarkFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="14,0,0,0"
SnapsToDevicePixels="true"
Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"
StrokeThickness="1"
StrokeDashArray="1 2" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<SolidColorBrush x:Key="OptionMark.MouseOver.Background"
Color="#FFF3F9FF" />
<SolidColorBrush x:Key="OptionMark.MouseOver.Border"
Color="#FF5593FF" />
<SolidColorBrush x:Key="OptionMark.MouseOver.Glyph"
Color="#FF212121" />
<SolidColorBrush x:Key="OptionMark.Disabled.Background"
Color="#FFE6E6E6" />
<SolidColorBrush x:Key="OptionMark.Disabled.Border"
Color="#FFBCBCBC" />
<SolidColorBrush x:Key="OptionMark.Disabled.Glyph"
Color="#FF707070" />
<SolidColorBrush x:Key="OptionMark.Pressed.Background"
Color="#FFD9ECFF" />
<SolidColorBrush x:Key="OptionMark.Pressed.Border"
Color="#FF3C77DD" />
<SolidColorBrush x:Key="OptionMark.Pressed.Glyph"
Color="#FF212121" />
<SolidColorBrush x:Key="OptionMark.Static.Glyph"
Color="#FF212121" />
<Style TargetType="{x:Type CheckBox}">
<Setter Property="FocusVisualStyle"
Value="{StaticResource FocusVisual}" />
<Setter Property="Background"
Value="{StaticResource OptionMark.Static.Background}" />
<Setter Property="BorderBrush"
Value="{StaticResource OptionMark.Static.Border}" />
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
<Setter Property="BorderThickness"
Value="1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type CheckBox}">
<Grid x:Name="templateRoot"
Background="Transparent"
SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid VerticalAlignment="Center">
<Border x:Name="checkBoxBorder"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="1"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<Grid x:Name="markGrid"
VerticalAlignment="Center">
<Path x:Name="optionMark"
Data="F1 M 9.97498,1.22334L 4.6983,9.09834L 4.52164,9.09834L 0,5.19331L 1.27664,3.52165L 4.255,6.08833L 8.33331,1.52588e-005L 9.97498,1.22334 Z "
Fill="{StaticResource OptionMark.Pressed.Glyph}"
Margin="5"
Opacity="0"
Stretch="Uniform" />
<Rectangle x:Name="indeterminateMark"
Fill="{StaticResource OptionMark.Static.Glyph}"
Margin="2"
Opacity="0" />
</Grid>
</Border>
</Grid>
<Grid VerticalAlignment="Center" Grid.Column="1">
<ContentPresenter x:Name="contentPresenter"
Grid.Column="1"
Focusable="False"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Grid>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasContent"
Value="true">
<Setter Property="FocusVisualStyle"
Value="{StaticResource OptionMarkFocusVisual}" />
<Setter Property="Padding"
Value="4,-1,0,0" />
</Trigger>
<Trigger Property="IsMouseOver"
Value="true">
<Setter Property="Background"
TargetName="checkBoxBorder"
Value="{StaticResource OptionMark.MouseOver.Background}" />
<Setter Property="BorderBrush"
TargetName="checkBoxBorder"
Value="{StaticResource OptionMark.MouseOver.Border}" />
<Setter Property="Fill"
TargetName="optionMark"
Value="{StaticResource OptionMark.MouseOver.Glyph}" />
<Setter Property="Fill"
TargetName="indeterminateMark"
Value="{StaticResource OptionMark.MouseOver.Glyph}" />
</Trigger>
<Trigger Property="IsEnabled"
Value="false">
<Setter Property="Background"
TargetName="checkBoxBorder"
Value="{StaticResource OptionMark.Disabled.Background}" />
<Setter Property="BorderBrush"
TargetName="checkBoxBorder"
Value="{StaticResource OptionMark.Disabled.Border}" />
<Setter Property="Fill"
TargetName="optionMark"
Value="{StaticResource OptionMark.Disabled.Glyph}" />
<Setter Property="Fill"
TargetName="indeterminateMark"
Value="{StaticResource OptionMark.Disabled.Glyph}" />
</Trigger>
<Trigger Property="IsPressed"
Value="true">
<Setter Property="Background"
TargetName="checkBoxBorder"
Value="{StaticResource OptionMark.Pressed.Background}" />
<Setter Property="BorderBrush"
TargetName="checkBoxBorder"
Value="{StaticResource OptionMark.Pressed.Border}" />
<Setter Property="Fill"
TargetName="optionMark"
Value="{StaticResource OptionMark.Pressed.Glyph}" />
<Setter Property="Fill"
TargetName="indeterminateMark"
Value="{StaticResource OptionMark.Pressed.Glyph}" />
</Trigger>
<Trigger Property="IsChecked"
Value="true">
<Setter Property="Opacity"
TargetName="optionMark"
Value="1" />
<Setter Property="Opacity"
TargetName="indeterminateMark"
Value="0" />
</Trigger>
<Trigger Property="IsChecked"
Value="{x:Null}">
<Setter Property="Opacity"
TargetName="optionMark"
Value="0" />
<Setter Property="Opacity"
TargetName="indeterminateMark"
Value="1" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
CheckBox обретает вот такой вид:
Кажется что лучше, но до тех пор пока не поставишь галочку:
И как то выглядит не очень. Как по мне выглядит это примерно вот так:
Думаю ясно описал проблему. Спасибо за выделенное время для меня.
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Внимание! Это перевод вопроса modelBuilderConfigurations
Я хочу открыть следующий мир на основе количества звездЯ хочу знать, как рассчитать звезды в разных сценах
Мне нужно сделать остановку объектов при касанииПри касание значение int = -1