如何在WPF中设置Grid ColumnDefinitions的样式
这是一种方式: 1)创建一个带有附加属性的集合,如下所示:
public class ColumnDefinitions : Collection
{
public static readonly DependencyProperty SourceProperty = DependencyProperty.RegisterAttached(
“Source”,
typeof(ColumnDefinitions),
typeof(ColumnDefinitions),
new PropertyMetadata(
default(ColumnDefinitions),
OnColumnDefinitionsChanged));
public static void SetSource(Grid element, ColumnDefinitions value)
{
element.SetValue(SourceProperty, value);
}
[AttachedPropertyBrowsableForChildren(IncludeDescendants = false)]
[AttachedPropertyBrowsableForType(typeof(Grid))]
public static ColumnDefinitions GetSource(Grid element)
{
return (ColumnDefinitions)element.GetValue(SourceProperty);
}
private static void OnColumnDefinitionsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var grid = (Grid)d;
grid.ColumnDefinitions.Clear();
var columnDefinitions = (ColumnDefinitions)e.NewValue;
if (columnDefinitions == null)
{
return;
}
foreach (var columnDefinition in columnDefinitions)
{
grid.ColumnDefinitions.Add(columnDefinition);
}
}
}
2)然后你可以使用它作为资源和网格样式,如下所示: 请注意,必须使用x:Shared=“False”。如果没有相同的定义将添加到导致WPF抛出的许多网格中。
<UserControl.Resources>
<demo:ColumnDefinitions x:Key=“SomeColumnDefinitions” x:Shared=“False”>
</demo:ColumnDefinitions>
</UserControl.Resources>
<Grid.RowDefinitions>
</Grid.RowDefinitions>
可以通过使用具有网格作为其ItemsPanelTemplate的ItemsControl来设置ColumnDefinitions。下面的示例显示了这一点。
相关文章
- WPF入门教程系列七——布局之WrapPanel与StackPanel(二)
- WPF 自定义窗口关闭按钮
- ComponentOne Studio WPF部署功能完全兼容
- WPF X18的TX Text Control .NET v28
- dotnet 读 WPF 源代码笔记 WPF 是如何做到一套代码兼容多个 .NET Framework 版本
- dotnet 读 WPF 源代码笔记 WriteableBitmap 的渲染和更新是如何实现
- WPF 获取本机所有字体拿到每个字符的宽度和高度
- WPF 如何在静态资源定义字体大小
- 2019-11-29-WPF-使用-Win2d-渲染
- 2018-8-15-WPF-插拔触摸设备触摸失效
- 2018-2-13-wpf-如何使用-Magick.NET-播放-gif-图片
- 2018-2-13-wpf-如何使用-Magick.NET-播放-gif-图片
- 2018-11-1-WPF-Main-thread-gets-a-deadlock-when-stylus-input-thread-is-waiting-for-the-window-to-clos...
- 2018-7-15-WPF-在-DrawingContext-的-push-如何使用
- 2018-7-15-WPF-在-DrawingContext-的-push-如何使用
- 2018-9-2-WPF-开发自动删除软件
- 2018-8-10-WPF-好看的矢量图标
- WPF 托盘显示
- WPF DelegateCommand 出现Specified cast is not valid
- c# wpf 加密文本
- WPF C# 字符串读写文件