Uwp 如何相对于包装内容垂直居中复选框图形

Uwp 如何相对于包装内容垂直居中复选框图形,uwp,centering,uwp-xaml,word-wrap,Uwp,Centering,Uwp Xaml,Word Wrap,我有以下XAML结构 <StackPanel Orientation="Horizontal"> <CheckBox> <TextBlock Text="Lorem ipsum dolor sit amet etc" TextWrapping="Wrap" Width="200"/> </CheckBox> <Button> <SymbolIcon Symbol="Del

我有以下XAML结构

<StackPanel Orientation="Horizontal">

    <CheckBox>
        <TextBlock Text="Lorem ipsum dolor sit amet etc" TextWrapping="Wrap" Width="200"/>
    </CheckBox>

    <Button>
        <SymbolIcon Symbol="Delete"/>
    </Button>

</StackPanel>

请注意删除按钮和文本(严格地说是整个复选框)是如何垂直居中的,但复选框的实际图形却在做自己的事情。这是因为文字环绕-如果是单行文字,则所有文字都将居中


如何使图形与文本(即复选框的内容)垂直居中?

几分钟后,我从中找到了答案

  • 选中Visual Studio中文档大纲中的复选框
  • 右键单击复选框>编辑模板>编辑副本
  • 在ControlTemplate中找到以下代码

    <Grid Height="32" VerticalAlignment="Top">
        <Rectangle x:Name="NormalRectangle" Fill="{ThemeResource CheckBoxCheckBackgroundFillUnchecked}" Height="20" StrokeThickness="{ThemeResource CheckBoxBorderThemeThickness}" Stroke="{ThemeResource CheckBoxCheckBackgroundStrokeUnchecked}" UseLayoutRounding="False" Width="20"/>
        <FontIcon x:Name="CheckGlyph" FontFamily="{ThemeResource SymbolThemeFontFamily}" Foreground="{ThemeResource CheckBoxCheckGlyphForegroundUnchecked}" FontSize="20" Glyph="&#xE001;" Opacity="0"/>
    </Grid>
    
    
    
  • 将栅格的
    垂直对齐
    属性从
    Top
    更改为
    Center