xaml代码:<ItemsControl x:Class="HDSProject.Control.CustomFont" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:HDSProject.Control" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" x:Name="itemCtrl" ItemsSource="{Binding MyProperty, RelativeSource={RelativeSource AncestorType={x:Type local:CustomFont}}}" FontSize="20" Foreground="Teal" > <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"/> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate> <Border Margin="2"> <ContentPresenter Content="{Binding}"/> </Border> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl>后台代码:public partial class CustomFont : ItemsControl { public static readonly DependencyProperty MyPropertyProperty = DependencyProperty.Register( "MyProperty", typeof(string), typeof(CustomFont), new PropertyMetadata("Default Value")); public CustomFont() { InitializeComponent(); } public string MyProperty { get { return (string)GetValue(MyPropertyProperty); } set { SetValue(MyPropertyProperty, value); } } private string title2 = "测试字体间距zjis"; public string Title2 { get { return title2; } set { title2 = value; OnPropertyChanged("Title2"); } } public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } }调用处:<Control:CustomFont MyProperty="islearner"/>
时间: 2024-02-10 13:08:54 浏览: 166
这段代码实现了一个自定义控件 CustomFont,它继承自 ItemsControl。通过设置 ItemsSource 属性绑定到 CustomFont 控件的 MyProperty 属性,可以将 MyProperty 中的数据展示为一个个带边框的内容项。ItemsPanelTemplate 指定了内容项排列方式为水平方向的 StackPanel。ItemTemplate 指定了每个内容项的展示方式为一个带边框的 ContentPresenter。后台代码中定义了 MyProperty 属性和 Title2 属性,其中 MyProperty 是一个依赖属性,可以通过 SetValue 和 GetValue 方法设置和获取其值。OnPropertyChanged 方法用于通知属性变化。最后,在调用处使用 Control:CustomFont 标签,并通过 MyProperty 属性设置 CustomFont 控件的数据源。
阅读全文