视图框和边框

时间:2013-05-05 00:06:06

标签: xaml store

我正在使用XAML和C#编写商店应用程序。我想使用Border和ViewBox。我有边框样式,所以我不必多次设置属性。我将BorderThickness设置为2,并将颜色设置为白色,但这会导致我的Viewbox出现问题。

这是在XAML:

<Viewbox Grid.Row="1" Stretch="Uniform">
  <Grid Width="600" Height="600">
    <Grid.Resources>
      <Style TargetType="Border">
        <Setter Property="BorderBrush" Value="White" />
        <Setter Property="BorderThickness" Value="2" />
      </Style>
      <Style TargetType="Grid">
        <Setter Property="VerticalAlignment" Value="Top" />
        <Setter Property="HorizontalAlignment" Value="Left" />
        <Setter Property="Width" Value="150" />
        <Setter Property="Height" Value="150" />
      </Style>
    </Grid.Resources>

    <StackPanel Orientation="Vertical">
      <StackPanel Orientation="Horizontal">
        <Grid>
          <Border>
            <Viewbox>
              <TextBlock Text="T" />
            </Viewbox>
          </Border>
        </Grid>

结果是:

enter image description here

问题是字母“T”周围的缩放边框。

我不想在Grid.Resources中删除Border的上述样式。到目前为止我找到了一个解决方案......

            <Viewbox>
              <Viewbox.Resources>
                <Style TargetType="Border">
                  <Setter Property="BorderBrush" Value="White" />
                  <Setter Property="BorderThickness" Value="0" />
                </Style>
              </Viewbox.Resources>
              <TextBlock Text="T" />

......会给出正确的结果:

enter image description here

,但我不想在每个ViewBox之后放这些行,因为会有很多。 我也尝试制作一个组件,这个默认的“资源”是零粗边框,但是它的缩放比例很差。

所以我的问题是如何删除该边框?

1 个答案:

答案 0 :(得分:0)

对BorderThickness使用零值是正确的。可视树树层次结构中可能还有另一个元素,它还包含一个导致此值的默认值。

我现在无法测试,但我可以向您推荐此工具: http://blois.us/Snoop/

您可以通过拖动正在运行的调试应用程序上方的十字准线来检查可视化树。每当我偶然发现这样的问题时,我发现在运行时看到哪些控件确实出现非常有用,因为使用xaml时,很难知道这一切。希望你能找到它!