我想從 ListBox 創建一個選單 選擇專案時如何更改文本和影像顏色?
例子:
在此處輸入影像描述
我得到它是這樣的:
在此處輸入影像描述
代碼 XAML:
<ListView Background="Transparent"
BorderBrush="Transparent"
HorizontalAlignment="Left"
Margin="0 0 0 0">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Border Name="_Border" Margin="3 0 3 0" Padding="5 5 5 5"
CornerRadius="3"
SnapsToDevicePixels="true"
Background="Transparent">
<ContentPresenter />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter TargetName="_Border" Property="Background" Value="#36A3F6"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListViewItem IsSelected="True">
<StackPanel Orientation="Horizontal">
<Image Source="Images/home.png" Width="15" Height="15" Margin="5 0 5 0"/>
<TextBlock Text="item1"/>
</StackPanel>
</ListViewItem>
<ListViewItem>
<StackPanel Orientation="Horizontal">
<Image Source="Images/home.png" Width="15" Height="15" Margin="5 0 5 0"/>
<TextBlock Text="item2"/>
</StackPanel>
</ListViewItem>
<ListViewItem>
<StackPanel Orientation="Horizontal">
<Image Source="Images/home.png" Width="15" Height="15" Margin="5 0 5 0"/>
<TextBlock Text="item3"/>
</StackPanel>
</ListViewItem>
</ListView>
uj5u.com熱心網友回復:
要更改文本顏色,您可以簡單地將另一個 Setter 放入“IsSelected”-Trigger 中,例如:
<Setter Property="Foreground" Value="White"/>
不過,更改 .png-Image 的顏色不會那么簡單。您應該考慮將您的圖示(如 home.png)轉換為路徑,以便您可以更輕松地轉換它們并更改它們的顏色(“填充”-屬性)
如果您想進一步處理您的專案,還可以考慮將您的樣式放入單獨的 ResourceDictionaries 以清理您的代碼
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/440627.html
上一篇:如何在WPF中的選單上附加標簽?
