[ad_1]
こんにちは、みんな
誰かこれについて助けてくれませんか?
コンボボックス内の項目の角を丸くする必要があります。
つまり、それぞれです。
なぜなら、私のアイテムはそれぞれ色が異なるからです。
ありがとう。
私が試したこと:
XML
<ComboBoxItem x:Name="Item25" OverridesDefaultStyle="True" Foreground="Red" Background="Green" Content="Item No. 25" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" ScrollViewer.VerticalScrollBarVisibility="Disabled"> <Border CornerRadius="8"/> </ComboBoxItem>
解決策 1
何か調査してみましたか?
解決策 2
必要なのは、スタイルをオーバーライドすることです。 これで何を実現しようとしているのかあまり想像できないので、選択した項目のみに丸い枠線があり、背景が緑色に設定されている例を示します。 実際には次のようなものを試してみる必要があります。
XML
<Window x:Class="RoundedComboBoxItem.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:RoundedComboBoxItem" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800" xmlns:theme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2"> <Window.Resources> <Style TargetType="{x:Type ComboBoxItem}"> <Setter Property="SnapsToDevicePixels" Value="true" /> <Setter Property="OverridesDefaultStyle" Value="true" /> <Setter Property="Foreground" Value="Red" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ComboBoxItem}"> <Border x:Name="Border" Padding="2" SnapsToDevicePixels="true" Background="Transparent" CornerRadius="8" > <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="SelectionStates"> <VisualState x:Name="Unselected" /> <VisualState x:Name="Selected"> <Storyboard> <ColorAnimationUsingKeyFrames Storyboard.TargetName="Border" Storyboard.TargetProperty="(Panel.Background). (SolidColorBrush.Color)"> <EasingColorKeyFrame KeyTime="0" Value="Green" /> </ColorAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <ContentPresenter /> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> </Window.Resources> <Grid> <ComboBox HorizontalAlignment="Left" Margin="154,133,0,0" VerticalAlignment="Top" Width="372"> <ComboBoxItem Content="Item No. 23" /> <ComboBoxItem Content="Item No. 24"/> <ComboBoxItem Content="Item No. 25"> </ComboBoxItem> </ComboBox> </Grid> </Window>
[ad_2]
コメント