C# 防止标签边框加粗

C# 防止标签边框加粗,c#,wpf,C#,Wpf,我使用viewbox来填充可用的空间,它给了我正确的结果,但并不准确 <Viewbox Grid.Row="0" Grid.Column="0"> <StackPanel Name="letters" Orientation="Horizontal"> <Label ..>...</Label> ... </StackPanel> </Viewbox> .

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

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

...
...
当我不断向StackPanel添加标签时,当标签超过容器宽度时,它们会变小

这是我想要的行为,但是我不希望标签的边框变为“粗体”(因为viewbox)


我应该如何更改代码结构?

为标签创建一个样式,并将BorderClockness属性设置为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>

...

我修改了kzen的答案,以确保在每次向堆栈面板添加新标签时,不必在代码中明确定义样式。(警告:编码到位,但请注意,它应该按原样编译)


...

无论如何,
。。我应该问问是否有可能在viewbox中有一个恒定大小的东西,这应该更清楚

边框不是文本;他们不能太大胆。嗯,是的。。但你知道,当你将viewbox应用到对象上,然后边框变得比需要的更宽时。如果我从代码端(不是xaml)添加标签,这种样式仍然可用吗?不完全是这样。我添加了一个新的答案,其中我调整了kzen的答案,以确保您不必每次都添加样式。但我想知道这是否会删除边框?我不想那样!我只希望它的厚度将保持不变,而不管标签大小。将Value=“0”更改为其他值,它将保持不变,而不管标签大小
<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>