C# 如何防止重叠处的双厚度边界?

C# 如何防止重叠处的双厚度边界?,c#,wpf,xaml,C#,Wpf,Xaml,如果您有: <Grid > <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="2*"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> </Grid> 在每个网格中放置一个厚度为1的边界,网格行之间的边界厚度将增加一倍。处理此

如果您有:

<Grid >
  <Grid.RowDefinitions>
    <RowDefinition Height="*"/>
    <RowDefinition Height="2*"/>
    <RowDefinition Height="*"/>
  </Grid.RowDefinitions>
</Grid>

在每个网格中放置一个厚度为1的边界,网格行之间的边界厚度将增加一倍。处理此问题的唯一方法是在边框的每个边上指定厚度,还是有一些控件可以在网格周围为每个柱创建边框,而不具有双重厚度

当前正在尝试使用以下内容:

                    <Border  
                      BorderBrush="Black"
                      BorderThickness="1"
                      Margin="19,0,0,0"  
                      Background="LightGray"
                      >
                      <Viewbox VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
                        <Grid>
                          <Grid.RowDefinitions>
                            <RowDefinition Height="*"/>
                            <RowDefinition Height="2*"/>
                            <RowDefinition Height="*"/>
                          </Grid.RowDefinitions>
                          <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                      </Grid.ColumnDefinitions>

                      <TextBlock
                        Grid.Row="1"
                        Grid.Column="0"
                        x:Name="TreeViewHeaderTextBox" 
                        VerticalAlignment="Center"
                        HorizontalAlignment="Center" 
                        Text="Time"
                        Foreground="Black"
                        />


                      <TextBlock
                        Grid.Row="1"
                        Grid.Column="1"
                        Text="X"
                        TextAlignment="Center"
                        HorizontalAlignment="Stretch"
                        VerticalAlignment="Center"
                        />

                      <TextBlock 
                        Grid.Row="1"
                        Grid.Column="2"
                        Text="O"
                        TextAlignment="Center"
                        HorizontalAlignment="Stretch"
                        VerticalAlignment="Center"
                        />

                    </Grid>
                  </Viewbox>
                </Border>

然而,我开始对旧代码进行修改,所以这不是一个很好的双边框示例。然而,我也从这个模板得到了双边框

              <Border Name="Bd"
                      Grid.Column="1"
                      Background="{TemplateBinding Background}"
                      BorderBrush="{TemplateBinding BorderBrush}"
                      BorderThickness="{TemplateBinding BorderThickness}"
                      Padding="{TemplateBinding Padding}"
                      SnapsToDevicePixels="true">
                <ContentPresenter x:Name="PART_Header"
                                  ContentSource="Header"
                                  HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                  SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
              </Border>

因为每个项目都有一个双厚度的边框,在这里它与下一个项目相接触


编辑2:在阅读注释后,我意识到我可能不应该在控件的datatemplate上定义边框,而应该通过控件设置边框并更改controltemplate上的模板。可能会从中获得双边框。

如果在边框元素中包裹网格并设置厚度,我相信这会在每个网格项目之间放置边框,并避免出现双边框-现在尝试测试。

厚度可以设置为=“left,top,right,bottom”,这意味着可以将重叠部分设置为一半

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="2*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Border BorderThickness="1,1,1,0.5" BorderBrush="Black"/>
    <Border BorderThickness="1,0.5" BorderBrush="Black" Grid.Row="1" />
    <Border BorderThickness="1,0.5,1,1" BorderBrush="Black"  Grid.Row="2" />
</Grid>


请公布您当前如何设置边框厚度。我在网格内设置了边框,我正在更改边框厚度。也许我只需要一个最外层的网格,它将包装每个项目。这是有道理的。或者可能存在栅格边界厚度属性。我会去调查一下,你有没有听说过“XAML值千言万语”这句话?@Blam只有在它有一个结束标记的时候!:这是有道理的。我应该想到这一点。我只是觉得很奇怪,然后继续前进。我现在就测试它,希望它能有所帮助——我找不到一个可以快速测试的项目,不得不继续一段时间。如果你仍然没有成功,我会努力挖掘一些东西。我知道我见过用一个边界设置完成的。