防止标签边框加粗

本文关键字:边框 标签 | 更新日期: 2023-09-27 18:01:58

我使用viewbox来填充可用的空间,它给了我正确的结果,但不完全正确。

<Viewbox Grid.Row="0"  Grid.Column="0">
    <StackPanel Name="letters" Orientation="Horizontal">
         <Label ..>...</Label>
               ...
    </StackPanel>
</Viewbox>

当我不断添加标签到StackPanel时,当他们超过容器的宽度,他们变得更小。

这是我想要的行为,但是我不希望标签的边界是'粗体'(因为viewbox)。

我应该如何改变我的代码结构?

防止标签边框加粗

我已经修改了kzen的答案,以确保您不必在每次向堆栈面板添加新标签时都在代码中明确定义样式。(警告:就地编码,但AFAIK,它应该可以正常编译)

<Viewbox Grid.Row="0"  Grid.Column="0">
  <StackPanel Name="letters" Orientation="Horizontal">
    <StackPanel.Resources>
      <ResourceDictionary>
        <Style TargetType="{x:Type Label}">
          <Setter Property="BorderThickness" Value="0"/>
          <Setter Property="Margin" Value="0"/> <!-- not sure if this is also something you want -->
          <Setter Property="Padding" Value="0"/> <!-- not sure if this is also something you want -->
        </Style>
      </ResourceDictionary>
    </StackPanel.Resources>
    <Label></Label>
    ...
  </StackPanel>
</Viewbox>

为你的标签创建一个borderthickness属性为0的样式…

<Style x:Key="MyLabelStyle" TargetType="{x:Type Label}">
    <Setter Property="BorderThickness" Value="0"/>
</Style>
<Viewbox Grid.Row="0"  Grid.Column="0">
    <StackPanel Name="letters" Orientation="Horizontal">
         <Label Style="{DynamicResource MyLabelStyle}"></Label>
               ...
    </StackPanel>
</Viewbox>

不管怎样…我应该问一下是否有可能在viewbox内设置一些恒定大小的东西,这应该更清楚。