【问题标题】:Border style can apply only once time边框样式只能应用一次
【发布时间】:2020-03-05 17:29:22
【问题描述】:

在网格中,我尝试在我的所有 TextBlock 周围应用一个带样式的边框。 我对 XAML 代码没有任何问题,但在视觉上,当我在网格中的 TextBlock 周围应用具有相同样式的第二个边框(Col:0 Row:1)时,这个边框在网格中移动(Col:0 Row: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>

在我的窗口中:

<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 边框样式中简单地定义多种用途?

【问题讨论】:

    标签: c# wpf grid styles border


    【解决方案1】:

    您应该将Grid.RowGrid.Column 设置为Border 而不是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>
    

    并删除资源中的这些行

        <Setter Property="Grid.Column" Value="{Binding}"/>
        <Setter Property="Grid.Row" Value="{Binding}"/>
    

    【讨论】:

      猜你喜欢
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 2023-01-19
      • 2011-08-15
      • 1970-01-01
      相关资源
      最近更新 更多