srilekhamenon Ответов: 1

Преобразование стандартного combox в плоский стиль combobox WPF


я хочу комбинированный ящик с плоским стилем, но ему не хватает какой-то естественной анимации

Что я уже пробовал:

<Style x:Key="ComboBoxFlat" TargetType="{x:Type ComboBox}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ComboBox">
                    <Grid>
                        <ToggleButton Grid.Column="2" Focusable="false" IsChecked="{Binding Path=IsDropDownOpen,Mode=TwoWay,RelativeSource={RelativeSource TemplatedParent}}" >
                            <ToggleButton.Template>
                                <ControlTemplate>
                                    <Grid>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="5*" />
                                            <ColumnDefinition Width="*" />
                                        </Grid.ColumnDefinitions>
                                        <Border x:Name="Border"  Grid.ColumnSpan="2" CornerRadius="0" Background="#E1E1E1" BorderBrush="#ADADAD" BorderThickness="1" />
                                        <Border Grid.Column="0" CornerRadius="0"  Margin="1"  Background="#E1E1E1"  BorderBrush="#1f2432" BorderThickness="0,0,0,0" />
                                        <Path x:Name="Arrow" Grid.Column="1"   Fill="#606978"  HorizontalAlignment="Right" Margin="0,0,5,0" VerticalAlignment="Center" Data="M0,0 L0,2 L4,6 L8,2 L8,0 L4,4 z"/>
                                        <!--Data="M 0 0 L 4 4 L 8 0 Z"-->
                                    </Grid>
                                    <!--<ControlTemplate.Triggers>
                                            <Trigger Property="ToggleButton.IsMouseOver" Value="true">
                                                <Setter TargetName="Border" Property="Background" Value="#91A3C3" />
                                            </Trigger>
                                          
                                        </ControlTemplate.Triggers>-->
                                </ControlTemplate>
                            </ToggleButton.Template>
                        </ToggleButton>
                        <ContentPresenter Name="ContentSite" IsHitTestVisible="False"  Content="{TemplateBinding SelectionBoxItem}" ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" Margin="3"  />
                        <TextBox x:Name="PART_EditableTextBox" Visibility="Hidden" IsReadOnly="{TemplateBinding IsReadOnly}"/>
                        <Popup Name="Popup" Placement="Bottom" IsOpen="{TemplateBinding IsDropDownOpen}" AllowsTransparency="True"  Focusable="False" PopupAnimation="Slide">
                            <Grid  Name="DropDown" SnapsToDevicePixels="True" MinWidth="{TemplateBinding ActualWidth}" MaxHeight="{TemplateBinding MaxDropDownHeight}">
                                <Border x:Name="DropDownBorder" Background="#FFFFFF" />
                                <ScrollViewer SnapsToDevicePixels="True">
                                    <StackPanel IsItemsHost="True" />
                                </ScrollViewer>
                            </Grid>
                        </Popup>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
        </Style.Triggers>
    </Style>

1 Ответов

Рейтинг:
5

Graeme_Grant

Вы уже выписались: Дизайн материалов в XAML[^]