как настроить ComboBox в WPF - PullRequest
       46

как настроить ComboBox в WPF

0 голосов
/ 04 февраля 2011

всегда в ComboBox кнопка со стрелкой показывает, где пользователь нажимает, а затем список со значением. в WPF мы можем изменить кнопку со стрелкой, где я буду использовать свою собственную стрелку mage.functionality будет такой же. если возможно, то, пожалуйста, покажи мне XAML для этого. спасибо

1 Ответ

2 голосов
/ 04 февраля 2011

Что я понимаю, так это то, что вы хотите настроить стрелку в комбинированном ящике и иметь свое собственное изображение стрелки. Если это так, то вы можете легко сделать это, изменив контрольную таблицу со списком.

Вы можетеотредактируйте шаблон элемента управления по умолчанию, используя Expression Blend, или скопируйте его из здесь и внесите изменения.

Стрелка представлена ​​в шаблоне по умолчанию в виде пути внутри элемента управления переключателя с именем Named 'Стрелка'

. Вы можете изменить его по своему желанию, чтобы получить то, что вы ищете

<Geometry x:Key="DownArrowGeometry">M 0 0 L 3.5 4 L 7 0 Z</Geometry>
    <Style x:Key="ComboBoxReadonlyToggleButton" TargetType="{x:Type ToggleButton}">
        <Setter Property="OverridesDefaultStyle" Value="true"/>
        <Setter Property="IsTabStop" Value="false"/>
        <Setter Property="Focusable" Value="false"/>
        <Setter Property="ClickMode" Value="Press"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ToggleButton}">
                    <Microsoft_Windows_Themes:ButtonChrome x:Name="Chrome" SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderPressed="{TemplateBinding IsPressed}">
                        <Grid HorizontalAlignment="Right" Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}">
                            <Path x:Name="Arrow" Fill="Red" HorizontalAlignment="Center" Margin="3,1,0,0" VerticalAlignment="Center" Data="{StaticResource DownArrowGeometry}"/>
                       </Grid>
                    </Microsoft_Windows_Themes:ButtonChrome>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsChecked" Value="true">
                            <Setter Property="RenderPressed" TargetName="Chrome" Value="true"/>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Fill" TargetName="Arrow" Value="#AFAFAF"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
...