防止标签边框变粗

时间:2011-07-12 20:07:33

标签: c# wpf

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

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

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

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

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

3 个答案:

答案 0 :(得分:0)

使用BorderThickeness属性设置为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>

答案 1 :(得分:0)

我修改了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>

答案 2 :(得分:0)

无论如何..我应该问是否可以在视图框中有一些不变的大小,应该更清楚。