<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 Title2, 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>引用了这个控件为什么什么都不展示
时间: 2024-03-04 22:52:24 浏览: 22
这个控件的ItemsSource属性绑定的是Title2属性,这个属性可能没有被正确地设置或绑定,导致控件无法显示数据。可以检查一下Title2属性是否正确绑定,并且确保它是一个可枚举的集合类型,例如ObservableCollection。同时,还需要确保控件的DataContext被正确地设置,以便控件能够正确地访问到数据。如果以上都没有问题,可以尝试在代码中手动为控件设置一个数据源,看看是否能正常显示。
相关问题
<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 Path=Title2, RelativeSource={RelativeSource Mode=Self}}" FontSize="20" Foreground="Teal" > <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"/> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate> <Border Margin="{Binding Path=CharacterSpacing, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:CustomFont}}"> <TextBlock Text="{Binding}" /> </Border> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl>用Line控件在文字下方添加下划线
你可以在 `DataTemplate` 中添加一个 `Line` 控件来实现下划线效果。以下是修改后的代码示例:
```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 Path=Title2, RelativeSource={RelativeSource Mode=Self}}"
FontSize="20" Foreground="Teal">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding}" Margin="{Binding Path=CharacterSpacing, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:CustomFont}}"/>
<Line X1="0" Y1="0" X2="{Binding ActualWidth, ElementName=tb}" Y2="0" Stroke="Teal" StrokeThickness="1"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
```
这段 XAML 代码会在每个 `TextBlock` 下面添加一条宽度与 `TextBlock` 相同的下划线,下划线颜色为 Teal,线条粗细为 1。其中 `ElementName` 属性指向了 `TextBlock` 控件的名称,以获取其实际宽度来设置下划线的长度。
<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>
这段代码是一个自定义字体控件,使用了WPF中的ItemsControl。ItemsControl是一个用于绑定数据并显示在列表中的控件。这个自定义字体控件可以绑定MyProperty属性来设置显示的字体列表,然后通过数据模板(DataTemplate)来设置每个字体项的显示方式,这里使用了一个Border包裹一个ContentPresenter来显示字体名称。控件的显示方式是水平排列的StackPanel。控件的字体大小为20,前景色为青色。