C# 自定义下拉框样式详细代码,修改下拉框大小、颜色、图案。

  <RichTextBox x:Name="Rich" Width="479" Height="568" Background="White" VerticalScrollBarVisibility="Visible">
                    <RichTextBox.Template>
                        <ControlTemplate TargetType="{x:Type TextBoxBase}">
                            <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
                                <ScrollViewer  x:Name="PART_ContentHost" Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden">
                                    <ScrollViewer.Template>
                                        <ControlTemplate TargetType="{x:Type ScrollViewer}">
                                            <Grid x:Name="Grid" Background="{TemplateBinding Background}">
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="*"/>
                                                    <ColumnDefinition Width="Auto"/>
                                                </Grid.ColumnDefinitions>
                                                <Grid.RowDefinitions>
                                                    <RowDefinition Height="*"/>
                                                    <RowDefinition Height="Auto"/>
                                                </Grid.RowDefinitions>
                                                <Rectangle x:Name="Corner" Grid.Column="1" Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Grid.Row="1"/>
                                                <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="0" Margin="{TemplateBinding Padding}" Grid.Row="0"/>
                                                <ScrollBar x:Name="PART_VerticalScrollBar"   Background="#FFCAFBCA" AutomationProperties.AutomationId="VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Grid.Row="0" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}">
                                                    <ScrollBar.Template>
                                                        <ControlTemplate TargetType="{x:Type ScrollBar}">
                                                            <Grid x:Name="Bg" SnapsToDevicePixels="True">
                                                                <Grid.RowDefinitions>
                                                                    <RowDefinition MaxHeight="{DynamicResource {x:Static SystemParameters.VerticalScrollBarButtonHeightKey}}"/>
                                                                    <RowDefinition Height="1E-05*"/>
                                                                    <RowDefinition MaxHeight="{DynamicResource {x:Static SystemParameters.VerticalScrollBarButtonHeightKey}}"/>
                                                                </Grid.RowDefinitions>
                                                                <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0.5" Background="{TemplateBinding Background}" Grid.Row="1"/>
                                                                <RepeatButton x:Name="PART_LineUpButton" Command="ScrollBar.LineUpCommand" IsEnabled="{TemplateBinding IsMouseOver}">
                                                                    <RepeatButton.Style>
                                                                        <Style TargetType="{x:Type RepeatButton}">
                                                                            <Setter Property="FocusVisualStyle">
                                                                                <Setter.Value>
                                                                                    <Style>
                                                                                        <Setter Property="Control.Template">
                                                                                            <Setter.Value>
                                                                                                <ControlTemplate>
                                                                                                    <Rectangle Margin="2" SnapsToDevicePixels="True" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
                                                                                                </ControlTemplate>
                                                                                            </Setter.Value>
                                                                                        </Setter>
                                                                                    </Style>
                                                                                </Setter.Value>
                                                                            </Setter>
                                                                            <Setter Property="BorderThickness" Value="1"/>
                                                                            <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                                                            <Setter Property="VerticalContentAlignment" Value="Center"/>
                                                                            <Setter Property="Padding" Value="1"/>
                                                                            <Setter Property="Focusable" Value="False"/>
                                                                            <Setter Property="IsTabStop" Value="False"/>
                                                                            <Setter Property="Template">
                                                                                <Setter.Value>
                                                                                    <ControlTemplate TargetType="{x:Type RepeatButton}">
                                                                                        <Border x:Name="border" BorderBrush="#FFF0F0F0" CornerRadius="8 8 0 0"  BorderThickness="1" Background="#FFF0F0F0" SnapsToDevicePixels="True">
                                                                                            <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                                                                                        </Border>
                                                                                        <ControlTemplate.Triggers>
                                                                                            <Trigger Property="IsMouseOver" Value="True">
                                                                                                <Setter Property="Background" TargetName="border" Value="#FFDADADA"/>
                                                                                                <Setter Property="BorderBrush" TargetName="border" Value="#FFDADADA"/>
                                                                                            </Trigger>
                                                                                            <Trigger Property="IsPressed" Value="True">
                                                                                                <Setter Property="Background" TargetName="border" Value="#FF606060"/>
                                                                                                <Setter Property="BorderBrush" TargetName="border" Value="#FF606060"/>
                                                                                            </Trigger>
                                                                                            <Trigger Property="IsEnabled" Value="False">
                                                                                                <Setter Property="Opacity" TargetName="contentPresenter" Value="0.56"/>
                                                                                                <Setter Property="Background" TargetName="border" Value="#FFF0F0F0"/>
                                                                                                <Setter Property="BorderBrush" TargetName="border" Value="#FFF0F0F0"/>
                                                                                            </Trigger>
                                                                                        </ControlTemplate.Triggers>
                                                                                    </ControlTemplate>
                                                                                </Setter.Value>
                                                                            </Setter>
                                                                        </Style>
                                                                    </RepeatButton.Style>
                                                                    <Path x:Name="ArrowTop" Data="M0,4C0,4 0,6 0,6 0,6 3.5,2.5 3.5,2.5 3.5,2.5 7,6 7,6 7,6 7,4 7,4 7,4 3.5,0.5 3.5,0.5 3.5,0.5 0,4 0,4z" Fill="#FF606060" Margin="3,4,3,3" Stretch="Uniform"/>
                                                                </RepeatButton>
                                                                <Track x:Name="PART_Track" IsDirectionReversed="True" IsEnabled="{TemplateBinding IsMouseOver}" Grid.Row="1">
                                                                    <Track.DecreaseRepeatButton>
                                                                        <RepeatButton Command="ScrollBar.PageUpCommand">
                                                                            <RepeatButton.Style>
                                                                                <Style TargetType="{x:Type RepeatButton}">
                                                                                    <Setter Property="OverridesDefaultStyle" Value="True"/>
                                                                                    <Setter Property="Background" Value="Transparent"/>
                                                                                    <Setter Property="Focusable" Value="False"/>
                                                                                    <Setter Property="IsTabStop" Value="False"/>
                                                                                    <Setter Property="Template">
                                                                                        <Setter.Value>
                                                                                            <ControlTemplate TargetType="{x:Type RepeatButton}">
                                                                                                <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/>
                                                                                            </ControlTemplate>
                                                                                        </Setter.Value>
                                                                                    </Setter>
                                                                                </Style>
                                                                            </RepeatButton.Style>
                                                                        </RepeatButton>
                                                                    </Track.DecreaseRepeatButton>
                                                                    <Track.IncreaseRepeatButton>
                                                                        <RepeatButton Command="ScrollBar.PageDownCommand">
                                                                            <RepeatButton.Style>
                                                                                <Style TargetType="{x:Type RepeatButton}">
                                                                                    <Setter Property="OverridesDefaultStyle" Value="True"/>
                                                                                    <Setter Property="Background" Value="Transparent"/>
                                                                                    <Setter Property="Focusable" Value="False"/>
                                                                                    <Setter Property="IsTabStop" Value="False"/>
                                                                                    <Setter Property="Template">
                                                                                        <Setter.Value>
                                                                                            <ControlTemplate TargetType="{x:Type RepeatButton}">
                                                                                                <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/>
                                                                                            </ControlTemplate>
                                                                                        </Setter.Value>
                                                                                    </Setter>
                                                                                </Style>
                                                                            </RepeatButton.Style>
                                                                        </RepeatButton>
                                                                    </Track.IncreaseRepeatButton>
                                                                    <Track.Thumb>
                                                                        <Thumb>
                                                                            <Thumb.Style>
                                                                                <Style TargetType="{x:Type Thumb}">
                                                                                    <Setter Property="OverridesDefaultStyle" Value="True"/>
                                                                                    <Setter Property="IsTabStop" Value="False"/>
                                                                                    <Setter Property="Template">
                                                                                        <Setter.Value>
                                                                                            <ControlTemplate TargetType="{x:Type Thumb}">
                                                                                                <Rectangle x:Name="rectangle" Fill="#668089" Height="{TemplateBinding Height}" SnapsToDevicePixels="True" Width="{TemplateBinding Width}"/>
                                                                                                <ControlTemplate.Triggers>
                                                                                                    <Trigger Property="IsMouseOver" Value="True">
                                                                                                        <Setter Property="Fill" TargetName="rectangle" Value="#FF65B8E8"/>
                                                                                                    </Trigger>
                                                                                                    <Trigger Property="IsDragging" Value="True">
                                                                                                        <Setter Property="Fill" TargetName="rectangle" Value="#FFC5DCFF"/>
                                                                                                    </Trigger>
                                                                                                </ControlTemplate.Triggers>
                                                                                            </ControlTemplate>
                                                                                        </Setter.Value>
                                                                                    </Setter>
                                                                                </Style>
                                                                            </Thumb.Style>
                                                                        </Thumb>
                                                                    </Track.Thumb>
                                                                </Track>
                                                                <RepeatButton x:Name="PART_LineDownButton" Command="ScrollBar.LineDownCommand" IsEnabled="{TemplateBinding IsMouseOver}" Grid.Row="2">
                                                                    <RepeatButton.Style>
                                                                        <Style TargetType="{x:Type RepeatButton}">
                                                                            <Setter Property="FocusVisualStyle">
                                                                                <Setter.Value>
                                                                                    <Style>
                                                                                        <Setter Property="Control.Template">
                                                                                            <Setter.Value>
                                                                                                <ControlTemplate>
                                                                                                    <Rectangle Margin="2" SnapsToDevicePixels="True" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
                                                                                                </ControlTemplate>
                                                                                            </Setter.Value>
                                                                                        </Setter>
                                                                                    </Style>
                                                                                </Setter.Value>
                                                                            </Setter>
                                                                            <Setter Property="BorderThickness" Value="1"/>
                                                                            <Setter Property="HorizontalContentAlignment" Value="Center"/>
                                                                            <Setter Property="VerticalContentAlignment" Value="Center"/>
                                                                            <Setter Property="Padding" Value="1"/>
                                                                            <Setter Property="Focusable" Value="False"/>
                                                                            <Setter Property="IsTabStop" Value="False"/>
                                                                            <Setter Property="Template">
                                                                                <Setter.Value>
                                                                                    <ControlTemplate TargetType="{x:Type RepeatButton}">
                                                                                        <Border x:Name="border" BorderBrush="#FFF0F0F0" BorderThickness="1"  CornerRadius="0 0 8 8" Background="#FFF0F0F0" SnapsToDevicePixels="True">
                                                                                            <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                                                                                        </Border>
                                                                                        <ControlTemplate.Triggers>
                                                                                            <Trigger Property="IsMouseOver" Value="True">
                                                                                                <Setter Property="Background" TargetName="border" Value="#FFDADADA"/>
                                                                                                <Setter Property="BorderBrush" TargetName="border" Value="#FFDADADA"/>
                                                                                            </Trigger>
                                                                                            <Trigger Property="IsPressed" Value="True">
                                                                                                <Setter Property="Background" TargetName="border" Value="#FF606060"/>
                                                                                                <Setter Property="BorderBrush" TargetName="border" Value="#FF606060"/>
                                                                                            </Trigger>
                                                                                            <Trigger Property="IsEnabled" Value="False">
                                                                                                <Setter Property="Opacity" TargetName="contentPresenter" Value="0.56"/>
                                                                                                <Setter Property="Background" TargetName="border" Value="#FFF0F0F0"/>
                                                                                                <Setter Property="BorderBrush" TargetName="border" Value="#FFF0F0F0"/>
                                                                                            </Trigger>
                                                                                        </ControlTemplate.Triggers>
                                                                                    </ControlTemplate>
                                                                                </Setter.Value>
                                                                            </Setter>
                                                                        </Style>
                                                                    </RepeatButton.Style>
                                                                    <Path x:Name="ArrowBottom" Data="M0,2.5C0,2.5 0,0.5 0,0.5 0,0.5 3.5,4 3.5,4 3.5,4 7,0.5 7,0.5 7,0.5 7,2.5 7,2.5 7,2.5 3.5,6 3.5,6 3.5,6 0,2.5 0,2.5z" Fill="#FF606060" Margin="3,4,3,3" Stretch="Uniform"/>
                                                                </RepeatButton>
                                                            </Grid>
                                                            <ControlTemplate.Triggers>
                                                                <MultiDataTrigger>
                                                                    <MultiDataTrigger.Conditions>
                                                                        <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineDownButton}" Value="true"/>
                                                                        <Condition Binding="{Binding IsPressed, ElementName=PART_LineDownButton}" Value="true"/>
                                                                    </MultiDataTrigger.Conditions>
                                                                    <Setter Property="Fill" TargetName="ArrowBottom" Value="White"/>
                                                                </MultiDataTrigger>
                                                                <MultiDataTrigger>
                                                                    <MultiDataTrigger.Conditions>
                                                                        <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineUpButton}" Value="true"/>
                                                                        <Condition Binding="{Binding IsPressed, ElementName=PART_LineUpButton}" Value="true"/>
                                                                    </MultiDataTrigger.Conditions>
                                                                    <Setter Property="Fill" TargetName="ArrowTop" Value="White"/>
                                                                </MultiDataTrigger>
                                                                <MultiDataTrigger>
                                                                    <MultiDataTrigger.Conditions>
                                                                        <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineDownButton}" Value="true"/>
                                                                        <Condition Binding="{Binding IsPressed, ElementName=PART_LineDownButton}" Value="false"/>
                                                                    </MultiDataTrigger.Conditions>
                                                                    <Setter Property="Fill" TargetName="ArrowBottom" Value="Black"/>
                                                                </MultiDataTrigger>
                                                                <MultiDataTrigger>
                                                                    <MultiDataTrigger.Conditions>
                                                                        <Condition Binding="{Binding IsMouseOver, ElementName=PART_LineUpButton}" Value="true"/>
                                                                        <Condition Binding="{Binding IsPressed, ElementName=PART_LineUpButton}" Value="false"/>
                                                                    </MultiDataTrigger.Conditions>
                                                                    <Setter Property="Fill" TargetName="ArrowTop" Value="Black"/>
                                                                </MultiDataTrigger>
                                                                <Trigger Property="IsEnabled" Value="False">
                                                                    <Setter Property="Fill" TargetName="ArrowTop" Value="#FFBFBFBF"/>
                                                                    <Setter Property="Fill" TargetName="ArrowBottom" Value="#FFBFBFBF"/>
                                                                </Trigger>
                                                            </ControlTemplate.Triggers>
                                                        </ControlTemplate>
                                                    </ScrollBar.Template>
                                                </ScrollBar>
                                                <ScrollBar x:Name="PART_HorizontalScrollBar" AutomationProperties.AutomationId="HorizontalScrollBar" Cursor="Arrow" Grid.Column="0" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
                                            </Grid>
                                        </ControlTemplate>
                                    </ScrollViewer.Template>

                                </ScrollViewer>
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsEnabled" Value="False">
                                    <Setter Property="Opacity" TargetName="border" Value="0.56"/>
                                </Trigger>
                                <Trigger Property="IsMouseOver" Value="True">
                                    <Setter Property="BorderBrush" TargetName="border" Value="#FF7EB4EA"/>
                                </Trigger>
                                <Trigger Property="IsKeyboardFocused" Value="True">
                                    <Setter Property="BorderBrush" TargetName="border" Value="#FF569DE5"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </RichTextBox.Template>
                    <!--<RichTextBox.Template>
                        <ControlTemplate>
                            <RichTextBox x:Name="RichA" Width="480" Height="568" Background="White" VerticalScrollBarVisibility="Visible">
                                <RichTextBox.Resources>
                                    <DataTemplate>
                                        <ScrollBar Background="red"></ScrollBar>
                                    </DataTemplate>
                                </RichTextBox.Resources>
                            </RichTextBox>
                        </ControlTemplate>
                    </RichTextBox.Template>-->
                </RichTextBox>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值