边框样式只能应用一次
Border style can apply only once time
进入网格,我尝试在所有 TextBlock 周围应用带样式的边框。
我对 XAML 代码没有问题,但在视觉上,当我在网格中的 TextBlock 周围应用具有相同样式的第二个边框时(列:0 行:1),这个在网格中移动(列:0 行: 0).
在我的 Window.Resources:
<Style x:Key="BorderTextBlockStyle" TargetType="{x:Type Border}">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="CornerRadius" Value="5"/>
<Setter Property="Grid.Column" Value="{Binding}"/>
<Setter Property="Grid.Row" Value="{Binding}"/>
</Style>
在我的 Window:
<Grid VerticalAlignment="Top">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Border Style="{StaticResource BorderTextBlockStyle}">
<TextBlock Grid.Column="0" Grid.Row="0" Text="Firstname" Style="{StaticResource GridTitleStyle}"/>
</Border>
<Border Style="{StaticResource BorderTextBlockStyle}">
<TextBlock Grid.Column="1" Grid.Row="0" Text="Lastname" Style="{StaticResource GridTitleStyle}"/>
</Border>
</Grid>
视觉还行:
视觉失败:
为什么?
我如何才能简单地在我的 xaml 边框样式中定义多次使用?
您应该为 Border
设置 Grid.Row
和 Grid.Column
而不是 TextBlock
<Border Grid.Column="0" Grid.Row="0" Style="{StaticResource BorderTextBlockStyle}">
<TextBlock Text="Firstname" Style="{StaticResource GridTitleStyle}"/>
</Border>
<Border Grid.Column="1" Grid.Row="0" Style="{StaticResource BorderTextBlockStyle}">
<TextBlock Text="Lastname" Style="{StaticResource GridTitleStyle}"/>
</Border>
并删除 Resource
中的这些行
<Setter Property="Grid.Column" Value="{Binding}"/>
<Setter Property="Grid.Row" Value="{Binding}"/>
进入网格,我尝试在所有 TextBlock 周围应用带样式的边框。 我对 XAML 代码没有问题,但在视觉上,当我在网格中的 TextBlock 周围应用具有相同样式的第二个边框时(列:0 行:1),这个在网格中移动(列:0 行: 0).
在我的 Window.Resources:
<Style x:Key="BorderTextBlockStyle" TargetType="{x:Type Border}">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="CornerRadius" Value="5"/>
<Setter Property="Grid.Column" Value="{Binding}"/>
<Setter Property="Grid.Row" Value="{Binding}"/>
</Style>
在我的 Window:
<Grid VerticalAlignment="Top">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Border Style="{StaticResource BorderTextBlockStyle}">
<TextBlock Grid.Column="0" Grid.Row="0" Text="Firstname" Style="{StaticResource GridTitleStyle}"/>
</Border>
<Border Style="{StaticResource BorderTextBlockStyle}">
<TextBlock Grid.Column="1" Grid.Row="0" Text="Lastname" Style="{StaticResource GridTitleStyle}"/>
</Border>
</Grid>
视觉还行:
视觉失败:
为什么?
我如何才能简单地在我的 xaml 边框样式中定义多次使用?
您应该为 Border
设置 Grid.Row
和 Grid.Column
而不是 TextBlock
<Border Grid.Column="0" Grid.Row="0" Style="{StaticResource BorderTextBlockStyle}">
<TextBlock Text="Firstname" Style="{StaticResource GridTitleStyle}"/>
</Border>
<Border Grid.Column="1" Grid.Row="0" Style="{StaticResource BorderTextBlockStyle}">
<TextBlock Text="Lastname" Style="{StaticResource GridTitleStyle}"/>
</Border>
并删除 Resource
中的这些行 <Setter Property="Grid.Column" Value="{Binding}"/>
<Setter Property="Grid.Row" Value="{Binding}"/>