Xaml 视图框和边框

Xaml 视图框和边框,xaml,store,Xaml,Store,我正在用XAML和C#编写一个商店应用程序。我想使用边框和视图框。我得到了边框样式,所以我不必多次设置属性。我将BorderThickness设置为2,将color设置为白色,但这会导致Viewbox出现问题 这里是XAML: <Viewbox Grid.Row="1" Stretch="Uniform"> <Grid Width="600" Height="600"> <Grid.Resources> <Style Target

我正在用XAML和C#编写一个商店应用程序。我想使用边框和视图框。我得到了边框样式,所以我不必多次设置属性。我将BorderThickness设置为2,将color设置为白色,但这会导致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>

其结果是:

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

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

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

。。。怎样才能得到正确的结果:

,但我不想将这些线放在每个视口之后,因为将有许多。 我还尝试制作一个组件,它的默认“资源”为零厚边框,但扩展性不好


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

您正确地使用了边框厚度的零值。视觉树层次结构中可能还有另一个元素,它也保存了导致这种情况的默认值

我现在无法测试此功能,但我可以向您推荐此工具:

您可以通过将十字线拖动到正在运行的调试应用程序上方来检查可视化树。每次我偶然发现这样的问题时,我发现查看哪些控件真正出现在运行时是非常有用的,因为使用xaml很难完全了解它。希望你能找到它