wpf - 如何打开 itemTemplate 控件的垂直和水平边框?
问题描述
我创建了项目模板控件并在数据模板中设置了它的边框粗细和颜色。这是我的 ItemTemplate 代码:
<ItemsControl x:Name="VimshottariDasha" Margin="-10,83,-124,-267" FontSize="16" Grid.ColumnSpan="3" BorderThickness="0">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderThickness="1" BorderBrush="DimGray">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="Col1" />
<ColumnDefinition SharedSizeGroup="Col2" />
<ColumnDefinition SharedSizeGroup="Col3" />
</Grid.ColumnDefinitions>
<Button Background="Transparent" BorderThickness="0" x:Name="DashaButton" Grid.Column="0" Content="{Binding rulerName}" Command="{Binding SelectedDasha}" CommandParameter="{Binding Content, RelativeSource={RelativeSource Self}}"/>
<TextBlock Grid.Column="1" Text="{Binding rulerStartDate, StringFormat=dd-MMM-yyyy HH:mm:ss}" />
<TextBlock Grid.Column="2" Text="{Binding rulerEndDate, StringFormat=dd-MMM-yyyy HH:mm:ss}"/>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
无论堆栈方向如何,如何同时显示垂直和水平边框?
同样的事情发生在另一个 itemTemplate 但相反,其堆栈方向设置为水平。我可以在第二项 Control 中看到垂直边框,但看不到水平边框。
这是当前的输出,里面有水平边框但没有垂直边框(堆栈方向默认为垂直)
这是第二个具有水平堆栈方向的 ItemControl,它缺少水平边框。
谢谢。
解决方案
WPF边框控件仅沿其外边缘绘制边框。[可以通过设置BorderThickness来翻转一个或多个边缘。]
如果要在各个控件之间创建边框线,您要么必须使用多个边框元素,要么自己手动绘制内部线条。
例如
<Border HorizontalAlignment="Center" VerticalAlignment="Center" BorderBrush="Green" BorderThickness="2" >
<Grid Height="24" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Column 1" VerticalAlignment="Center" />
<TextBlock Grid.Column="2" Text="Column 2" VerticalAlignment="Center" />
<TextBlock Grid.Column="4" Text="Column 3" VerticalAlignment="Center" />
<Path Stroke="Red" StrokeThickness="1" Data="M 0,0 M 2,2 M 1,0 L 1,2" Stretch="Fill" Grid.Column="1" />
<Path Stroke="Red" StrokeThickness="1" Data="M 0,0 M 2,2 M 1,0 L 1,2" Stretch="Fill" Grid.Column="3" />
</Grid>
</Border>
推荐阅读
- javascript - 确保我选择并遍历“每个”语句的所有元素
- datetime - 自动验证到期日期
- html - 单击输入时如何修复表单的高度并且输入时出现边框:焦点?
- javascript - 在 JavaScript 中,如何优雅地创建数组元素的差异列表?
- c# - 无法编译我的 Xamarin 应用程序,因为它使用 System.Web 命名空间
- julia - 具有邻接矩阵的 Floyd Warshall 算法
- c#-5.0 - 如何使oledb查询异步
- django - Django Rest Framework:无法克服奇怪的错误
- powershell - 在 PowerShell 中创建新的 System.Collections.Generic.Dictionary 对象失败
- smalltalk - Squeak 中的隐藏机制示例,类似于 C++