gpt4 book ai didi

c# - 为所有列表框创建样式

转载 作者:行者123 更新时间:2023-11-30 23:05:21 24 4
gpt4 key购买 nike

我正在开发一个新软件此应用程序中有多个列表框,列表框仅显示一张照片。我想为它们定义一个通用的样式

这是我的列表框代码

<ListBox Grid.Row="1" x:Name="HeroImageListbox" BorderThickness="0" Background="Transparent">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" Width="210"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding ImageSource}" Style="{StaticResource ImageHover}">
<Image.Effect>
<DropShadowEffect Direction="0" Color="Black" ShadowDepth="0" BlurRadius="35" Opacity="0.28"/>
</Image.Effect>
</Image>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="5 20 0 5"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>

我想对所有这些都使用我的风格,所以我怎样才能将这种风格放入资源目录并使用它

我试试看:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:DotaDrafter.Styles">
<Style TargetType="ListBox">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" Width="210"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding ImageSource}" Style="{StaticResource ImageHover}">
<Image.Effect>
<DropShadowEffect Direction="0" Color="Black" ShadowDepth="0" BlurRadius="35" Opacity="0.28"/>
</Image.Effect>
</Image>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="5 20 0 5"/>
</Style>
</ListBox.ItemContainerStyle>
</Style>

但没用希望你帮忙谢谢大家

最佳答案

在您的模板中,您仍然引用 Listbox 尝试改用 Setters:

<Style TargetType="ListBox">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<Image Source="{Binding ImageSource}" Style="{StaticResource ImageHover}">
<Image.Effect>
<DropShadowEffect Direction="0" Color="Black" ShadowDepth="0" BlurRadius="35" Opacity="0.28"/>
</Image.Effect>
</Image>
</DataTemplate>
</Setter.Value>
</Setter>

<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="ListBoxItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="5 20 0 5"/>
</Style>
</Setter.Value>
</Setter>

<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" Width="210"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>

注意:确保您的资源中也有 ImageHover 的样式。

您可以找到有关列表框样式的更多信息 here

关于c# - 为所有列表框创建样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48891084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com