UWP,XAML - 使CheckBox为空

mic*_*sol 8 c# checkbox xaml win-universal-app uwp

如何让CheckBox为空?我只需要打勾.现在它需要额外的空白空间,就像这里:

我不想要那个空的水色空间

<CheckBox
Background="Aqua"
Margin="0,0,0,0"/>
Run Code Online (Sandbox Code Playgroud)

(我添加了颜色以查看此控件占用多少空间(空白空间导致所有问题)).

我只需要刻度矩形,我不想要空的空间.我怎样才能做到这一点?

将边距设置为零并将内容设置为""不起作用.

Rya*_*yan 19

  1. 如果您只想删除右侧的空白区域,可以通过将Padding和MinWidth添加到0来执行此操作:

    <CheckBox Background="Aqua" Padding="0" MinWidth="0"/>
    
    Run Code Online (Sandbox Code Playgroud)

它看起来如下:

在此输入图像描述

  1. 如果您还想删除顶部和底部的空间,则需要更多工作:

    • 2A.在Visual Studio中选择Document Outline中的CheckBox
    • 2B.右键单击CheckBox - >编辑模板 - >编辑副本
    • 2C.然后你可以看到直接编辑CheckBox样式
    • 2D.然后在ControlTemplate中找到以下代码

      <Grid Height="32" VerticalAlignment="Top">
          <Rectangle x:Name="NormalRectangle" Fill="Transparent" Height="20" Stroke="{ThemeResource SystemControlForegroundBaseMediumHighBrush}" StrokeThickness="{ThemeResource CheckBoxBorderThemeThickness}" UseLayoutRounding="False" Width="20"/>
          <FontIcon x:Name="CheckGlyph" Foreground="{ThemeResource SystemControlHighlightAltChromeWhiteBrush}" FontSize="20" FontFamily="{ThemeResource SymbolThemeFontFamily}" Glyph="&#xE001;" Opacity="0"/>
      </Grid>
      
      Run Code Online (Sandbox Code Playgroud)

正如您所看到的,矩形是20x20,但它有一个32高度的容器网格.只需编辑网格的高度从32到20,如下所示:

在此输入图像描述

哦等等,为什么它还有32的高度?这是因为它在样式中设置了MinWidth和MinHeight

<Setter Property="MinWidth" Value="120"/>
<Setter Property="MinHeight" Value="32"/>
Run Code Online (Sandbox Code Playgroud)

最后,您可以在此处将这两个值直接重置为0,或者只在步骤1中将MinHeight设置为外部.

在此输入图像描述