如果您有:如何防止重疊處的雙重厚度邊界?
<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:在閱讀註釋之後,我意識到我可能不應該在控件的數據模板上定義邊框,而只需通過控件設置邊框並更改控件模板上的模板。可能會從中獲得雙重邊界。
請張貼您當前如何設置邊框厚度。 – Paparazzi
我在網格內有邊框,我改變邊框的厚度。也許我只需要一個最外層的網格,它會包裹每個項目。這就說得通了。也可能是網格邊框厚度屬性。我會去看看它 –
你有沒有聽說過XAML的表達勝過千言萬語? – Paparazzi