我的应用程序将在具有触摸风格的计算机上运行,由驾驶员在驾驶时操作.我将所有的图形元素都做得更大,这样它们就可以被像我自己和更大的香肠手指一样的人操作.
我有一个需要出现在屏幕上的CheckBox.我需要缩放复选框的大小和复选标记.我尝试通过右键单击并选择Edit Tempate |来编辑Expression Blend中CheckBox的模板编辑副本.我设置了副本,因此它适用于所有复选框.
通过模板绑定它的高度和高度,我能够使盒子更大. width属性到控件的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"/> </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的模板. “编辑当前”和“编辑副本”选项已禁用.
我如何完成我想做的事情?
托尼
解决方法
可以在
here on MSDN找到默认的一个组成BulletDecorator示例的XAML.该页面上几乎整个XAML块都处理BulletDecorator的外观和行为.
XAML的核心是两个Path对象.第一个用于复选标记,第二个用于不确定标记(虽然名称’InderminateMark’在示例XAML中拼写错误.幸运的是,在CheckBox示例中,它的拼写始终是错误的,所以没关系.
<Path Visibility="Collapsed" Width="7" Height="7" x:Name="CheckMark" SnapsToDevicePixels="False" StrokeThickness="2" Data="M 0 0 L 7 7 M 0 7 L 7 0"> <Path.Stroke> <SolidColorBrush Color="{DynamicResource GlyphColor}" /> </Path.Stroke> </Path> <Path Visibility="Collapsed" Width="7" Height="7" x:Name="InderminateMark" SnapsToDevicePixels="False" StrokeThickness="2" Data="M 0 7 L 7 0"> <Path.Stroke> <SolidColorBrush Color="{DynamicResource GlyphColor}" /> </Path.Stroke> </Path>