| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100 |
- <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"
- xmlns:resource="clr-namespace:Muchinfo.MTPClient.Resources;assembly=Client.Resources">
- <BorderGapMaskConverter x:Key="BorderGapMaskConverter" />
- <Style x:Key="SimpleScrollViewer"
- BasedOn="{x:Null}"
- TargetType="{x:Type ScrollViewer}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ScrollViewer}">
- <Grid Background="{TemplateBinding Background}">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="Auto" />
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition Height="*" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
- <ScrollContentPresenter Grid.Row="0"
- Grid.Column="0"
- Margin="{TemplateBinding Padding}"
- CanContentScroll="{TemplateBinding CanContentScroll}"
- Content="{TemplateBinding Content}"
- ContentTemplate="{TemplateBinding ContentTemplate}" />
- <!-- ScrollBars 的可见性通过控件的实现来控制 -->
- <ScrollBar x:Name="PART_HorizontalScrollBar"
- Grid.Row="1"
- Grid.Column="0"
- Maximum="{TemplateBinding ScrollableWidth}"
- Minimum="0"
- Orientation="Horizontal"
- Style="{DynamicResource SimpleScrollBar}"
- ViewportSize="{TemplateBinding ViewportWidth}"
- Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
- Value="{Binding HorizontalOffset,
- Mode=OneWay,
- RelativeSource={RelativeSource TemplatedParent}}" />
- <ScrollBar x:Name="PART_VerticalScrollBar"
- Grid.Row="0"
- Grid.Column="1"
- Maximum="{TemplateBinding ScrollableHeight}"
- Minimum="0"
- Orientation="Vertical"
- Style="{DynamicResource SimpleScrollBar}"
- ViewportSize="{TemplateBinding ViewportHeight}"
- Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
- Value="{Binding VerticalOffset,
- Mode=OneWay,
- RelativeSource={RelativeSource TemplatedParent}}" />
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <ControlTemplate x:Key="ComboBoxTextBox" TargetType="{x:Type TextBox}">
- <!-- 必须将其命名为 PART_ContentHost -->
- <Border x:Name="PART_ContentHost"
- Background="{TemplateBinding Background}"
- Focusable="False" />
- </ControlTemplate>
- <Style x:Key="ArrowComboBoxToggleButton"
- BasedOn="{x:Null}"
- TargetType="{x:Type ToggleButton}">
- <Setter Property="Background" Value="{DynamicResource ContentBackground}" />
- <Setter Property="BorderBrush" Value="{DynamicResource CommonBorderBrush}" />
- <Setter Property="BorderThickness" Value="1" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ToggleButton}">
- <Border Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition />
- <ColumnDefinition Width="20" />
- </Grid.ColumnDefinitions>
- <Path x:Name="Rectangle"
- Grid.Column="1"
- Width="20"
- Data="F1M4,2C4,2 148,2 148,2 149.105,2 150,2.895 150,4 150,4 150,22 150,22 150,23.105 149.105,24 148,24 148,24 4,24 4,24 2.895,24 2,23.105 2,22 2,22 2,4 2,4 2,2.895 2.895,2 4,2z"
- Fill="{DynamicResource ContentBackground}"
- Stretch="Fill" />
- <Border Grid.Column="1"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}">
- <Path x:Name="Arrow"
- Width="11"
- Height="7"
- Data="F1M5.5,5.999C5.5,5.999 1.001,1 1.001,1 1.001,1 9.999,1 9.999,1 9.999,1 5.5,5.999 5.5,5.999"
- Fill="#FF7A7A7A"
- Stroke="{TemplateBinding BorderBrush}" />
- </Border>
- </Grid>
- </Border>
- <ControlTemplate.Triggers>
- <Trigger Property="IsChecked" Value="true">
- <Setter TargetName="Rectangle" Property="Fill" Value="{DynamicResource SelectedBackBrush}" />
- </Trigger>
- <Trigger Property="IsMouseOver" Value="true">
- <Setter TargetName="Rectangle" Property="Fill" Value="{DynamicResource SelectedBackBrush}" />
- </Trigger>
- <Trigger Property="IsEnabled" Value="False">
- <!--
- <Setter TargetName="Rectangle" Property="Fill" Value="#FF7A7A7A" />
- <Setter TargetName="Rectangle" Property="Stroke" Value="#FF7A7A7A" />
- -->
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <!-- Simple ComboBoxItem - 它用于 ComboBox 中的每个项。可以更改下面每个项的选定颜色 -->
- <Style x:Key="SimpleComboBoxItem" TargetType="{x:Type ComboBoxItem}">
- <Setter Property="SnapsToDevicePixels" Value="true" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ComboBoxItem}">
- <Grid SnapsToDevicePixels="true">
- <Border x:Name="Border"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}" />
- <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
- </Grid>
- <ControlTemplate.Triggers>
- <!-- 更改 IsHighlighted SelectedBackgroundBrush,以设置各项的选择颜色 -->
- <Trigger Property="IsHighlighted" Value="true">
- <Setter TargetName="Border" Property="Background" Value="{DynamicResource SelectedBackgroundBrush}" />
- </Trigger>
- <Trigger Property="IsEnabled" Value="false">
- <Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <!--
- Simple ComboBox
- 它使用 ComboBoxToggleButton 来展开和折叠 Popup 控件
- 使用 SimpleScrollViewer 可使项滚动,而使用 SimpleComboBoxItem 可定义每个项的外观
- Popup 显示了 StackPanel 中的项的列表
- -->
- <Style x:Key="FocusVisual">
- <Setter Property="Control.Template">
- <Setter.Value>
- <ControlTemplate>
- <Border>
- <Rectangle Margin="2"
- SnapsToDevicePixels="true"
- Stroke="{DynamicResource FocusVisualBrush}"
- StrokeThickness="1" />
- </Border>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style x:Key="SimpleComboBoxStyle" TargetType="{x:Type ComboBox}">
- <Setter Property="Height" Value="24" />
- <Setter Property="Foreground" Value="{DynamicResource ContentForeGround}" />
- <Setter Property="BorderThickness" Value="1" />
- <Setter Property="BorderBrush" Value="{DynamicResource CommonBorderBrush}" />
- <Setter Property="SnapsToDevicePixels" Value="true" />
- <Setter Property="FocusVisualStyle" Value="{DynamicResource FocusVisual}" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ComboBox}">
- <Grid>
- <Rectangle Name="OutSideBorder"
- HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- SnapsToDevicePixels="true"
- Stroke="{DynamicResource FocusVisualBrush}"
- StrokeDashArray="1,2"
- StrokeThickness="1"
- Visibility="Collapsed" />
- <Border Margin="1"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- CornerRadius="2">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition />
- <ColumnDefinition Width="20" />
- </Grid.ColumnDefinitions>
- <!-- ToggleButton 已数据绑定到 ComboBox 本身以切换 IsDropDownOpen -->
- <ToggleButton x:Name="ToggleButton"
- Grid.Column="0"
- Grid.ColumnSpan="2"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="1,0,0,0"
- ClickMode="Press"
- Focusable="false"
- IsChecked="{Binding IsDropDownOpen,
- Mode=TwoWay,
- RelativeSource={RelativeSource TemplatedParent}}"
- Style="{DynamicResource ArrowComboBoxToggleButton}" />
- <ContentPresenter x:Name="ContentSite"
- Margin="3,0,3,0"
- HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="Center"
- Content="{TemplateBinding SelectionBoxItem}"
- ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
- ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
- IsHitTestVisible="False" />
- <Rectangle x:Name="enableRectangle"
- Grid.ColumnSpan="2"
- Fill="{DynamicResource DisEnableBrush}"
- Opacity="0.7"
- Visibility="Collapsed" />
- <!-- 必须将 TextBox 命名为 PART_EditableTextBox,否则 ComboBox 将无法识别它 -->
- <TextBox x:Name="PART_EditableTextBox"
- Margin="3"
- VerticalAlignment="Stretch"
- Background="Transparent"
- BorderThickness="0"
- Focusable="True"
- IsReadOnly="{TemplateBinding IsReadOnly}"
- Visibility="Hidden" />
- <!-- Popup 可显示 ComboBox 中的项列表。IsOpen 已数据绑定到通过 ComboBoxToggleButton 来切换的 IsDropDownOpen -->
- <Popup x:Name="Popup"
- AllowsTransparency="True"
- Focusable="False"
- IsOpen="{TemplateBinding IsDropDownOpen}"
- Placement="Bottom"
- PopupAnimation="Fade">
- <Grid x:Name="DropDown"
- MinWidth="{TemplateBinding ActualWidth}"
- MaxHeight="{TemplateBinding MaxDropDownHeight}"
- SnapsToDevicePixels="True">
- <Border x:Name="DropDownBorder"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="1" />
- <ScrollViewer Margin="4,2,4,6"
- CanContentScroll="True"
- HorizontalScrollBarVisibility="Auto"
- SnapsToDevicePixels="True"
- Style="{DynamicResource SimpleScrollViewer}"
- VerticalScrollBarVisibility="Auto">
- <!-- StackPanel 用于显示子级,方法是将 IsItemsHost 设置为 True -->
- <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained" />
- </ScrollViewer>
- </Grid>
- </Popup>
- </Grid>
- </Border>
- </Grid>
- <ControlTemplate.Triggers>
- <!-- 这会强制 DropDown 的大小有最小限制(如果它为空) -->
- <Trigger Property="HasItems" Value="false">
- <Setter TargetName="DropDownBorder" Property="MinHeight" Value="95" />
- </Trigger>
- <Trigger Property="IsEnabled" Value="false">
- <Setter TargetName="enableRectangle" Property="Visibility" Value="Visible" />
- </Trigger>
- <Trigger Property="IsGrouping" Value="true">
- <Setter Property="ScrollViewer.CanContentScroll" Value="false" />
- </Trigger>
- <Trigger SourceName="Popup" Property="AllowsTransparency" Value="true">
- <Setter TargetName="DropDownBorder" Property="CornerRadius" Value="4" />
- <Setter TargetName="DropDownBorder" Property="Margin" Value="0,2,0,0" />
- </Trigger>
- <Trigger Property="IsEditable" Value="true">
- <Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible" />
- <Setter TargetName="ContentSite" Property="Visibility" Value="Hidden" />
- </Trigger>
- <Trigger Property="IsFocused" Value="true">
- <Setter TargetName="OutSideBorder" Property="Visibility" Value="Visible" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style x:Key="QuoteChartComboBoxStyle" TargetType="{x:Type ComboBox}">
- <Setter Property="Height" Value="24" />
- <Setter Property="Foreground" Value="{DynamicResource MainForegroundBrush}" />
- <Setter Property="BorderThickness" Value="0" />
- <Setter Property="Background" Value="Transparent" />
- <Setter Property="BorderBrush" Value="{DynamicResource CommonBorderBrush}" />
- <Setter Property="SnapsToDevicePixels" Value="true" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ComboBox}">
- <Border Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- CornerRadius="2">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="20" />
- <ColumnDefinition />
- <ColumnDefinition Width="20" />
- </Grid.ColumnDefinitions>
- <!-- ToggleButton 已数据绑定到 ComboBox 本身以切换 IsDropDownOpen -->
- <ToggleButton Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="1"
- ClickMode="Press"
- Focusable="false">
- <Path Margin="{TemplateBinding Padding}"
- Data="M8.5,5.75 L15.5,15.5 0.5,15.5 z"
- Fill="{TemplateBinding Foreground}"
- RenderTransformOrigin="0.5,0.5"
- Stretch="Uniform">
- <Path.RenderTransform>
- <TransformGroup>
- <ScaleTransform />
- <SkewTransform />
- <RotateTransform Angle="-90" />
- <TranslateTransform />
- </TransformGroup>
- </Path.RenderTransform>
- </Path>
- </ToggleButton>
- <ToggleButton x:Name="ToggleButton"
- Grid.Column="1"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="1,0,0,0"
- ClickMode="Press"
- Focusable="false"
- IsChecked="{Binding IsDropDownOpen,
- Mode=TwoWay,
- RelativeSource={RelativeSource TemplatedParent}}" />
- <ContentPresenter x:Name="ContentSite"
- Grid.Column="1"
- Margin="3,0,3,0"
- VerticalAlignment="Center"
- Content="{TemplateBinding SelectionBoxItem}"
- ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
- ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
- IsHitTestVisible="False" />
- <ToggleButton Grid.Column="2"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="1"
- ClickMode="Press"
- Focusable="false">
- <Path Margin="{TemplateBinding Padding}"
- Data="M8.5,5.75 L15.5,15.5 0.5,15.5 z"
- Fill="{TemplateBinding Foreground}"
- RenderTransformOrigin="0.5,0.5"
- Stretch="Uniform">
- <Path.RenderTransform>
- <TransformGroup>
- <ScaleTransform />
- <SkewTransform />
- <RotateTransform Angle="90" />
- <TranslateTransform />
- </TransformGroup>
- </Path.RenderTransform>
- </Path>
- </ToggleButton>
- <Rectangle x:Name="enableRectangle"
- Grid.ColumnSpan="2"
- Fill="{DynamicResource DisEnableBrush}"
- Opacity="0.7"
- Visibility="Collapsed" />
- <!-- 必须将 TextBox 命名为 PART_EditableTextBox,否则 ComboBox 将无法识别它 -->
- <TextBox x:Name="PART_EditableTextBox"
- Margin="3"
- VerticalAlignment="Stretch"
- Background="Transparent"
- BorderThickness="0"
- Focusable="True"
- IsReadOnly="{TemplateBinding IsReadOnly}"
- Visibility="Hidden" />
- <!-- Popup 可显示 ComboBox 中的项列表。IsOpen 已数据绑定到通过 ComboBoxToggleButton 来切换的 IsDropDownOpen -->
- <Popup x:Name="Popup"
- AllowsTransparency="True"
- Focusable="False"
- IsOpen="{TemplateBinding IsDropDownOpen}"
- Placement="Bottom"
- PopupAnimation="Fade">
- <Grid x:Name="DropDown"
- MinWidth="{TemplateBinding ActualWidth}"
- MaxHeight="{TemplateBinding MaxDropDownHeight}"
- SnapsToDevicePixels="True">
- <Border x:Name="DropDownBorder"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="1" />
- <ScrollViewer Margin="4,2,4,6"
- CanContentScroll="True"
- HorizontalScrollBarVisibility="Auto"
- SnapsToDevicePixels="True"
- Style="{DynamicResource SimpleScrollViewer}"
- VerticalScrollBarVisibility="Auto">
- <!-- StackPanel 用于显示子级,方法是将 IsItemsHost 设置为 True -->
- <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained" />
- </ScrollViewer>
- </Grid>
- </Popup>
- </Grid>
- </Border>
- <ControlTemplate.Triggers>
- <!-- 这会强制 DropDown 的大小有最小限制(如果它为空) -->
- <Trigger Property="HasItems" Value="false">
- <Setter TargetName="DropDownBorder" Property="MinHeight" Value="95" />
- </Trigger>
- <Trigger Property="IsEnabled" Value="false">
- <Setter TargetName="enableRectangle" Property="Visibility" Value="Visible" />
- </Trigger>
- <Trigger Property="IsGrouping" Value="true">
- <Setter Property="ScrollViewer.CanContentScroll" Value="false" />
- </Trigger>
- <Trigger SourceName="Popup" Property="AllowsTransparency" Value="true">
- <Setter TargetName="DropDownBorder" Property="CornerRadius" Value="4" />
- <Setter TargetName="DropDownBorder" Property="Margin" Value="0,2,0,0" />
- </Trigger>
- <Trigger Property="IsEditable" Value="true">
- <Setter Property="IsTabStop" Value="false" />
- <Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible" />
- <Setter TargetName="ContentSite" Property="Visibility" Value="Hidden" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <SolidColorBrush x:Key="TextBoxForeground" Color="#FF444444" />
- <Style x:Key="LoginComboBoxToggleButton"
- BasedOn="{x:Null}"
- TargetType="{x:Type ToggleButton}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ToggleButton}">
- <Grid>
- <Border x:Name="Border"
- Height="{TemplateBinding Height}"
- Margin="1"
- Panel.ZIndex="1"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- CornerRadius="1" />
- <Border x:Name="MouseOverVisual"
- Height="{TemplateBinding Height}"
- Panel.ZIndex="1"
- BorderBrush="{DynamicResource TextBox_MouseOver}"
- BorderThickness="{TemplateBinding BorderThickness}"
- CornerRadius="1"
- Opacity="0" />
- </Grid>
- <ControlTemplate.Triggers>
- <Trigger Property="IsMouseOver" Value="True">
- <Setter TargetName="MouseOverVisual" Property="Opacity" Value="1" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <!--
- Simple ComboBox
- 它使用 ComboBoxToggleButton 来展开和折叠 Popup 控件
- 使用 SimpleScrollViewer 可使项滚动,而使用 SimpleComboBoxItem 可定义每个项的外观
- Popup 显示了 StackPanel 中的项的列表
- -->
- <Style x:Key="CycleListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
- <Setter Property="Background" Value="Transparent" />
- <Setter Property="HorizontalContentAlignment" Value="Center" />
- <Setter Property="VerticalContentAlignment" Value="Center" />
- <Setter Property="Padding" Value="5" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ListBoxItem}">
- <Border x:Name="Bd"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- Padding="{TemplateBinding Padding}"
- SnapsToDevicePixels="True">
- <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- Content="{TemplateBinding Content}"
- ContentStringFormat="{TemplateBinding ContentStringFormat}"
- ContentTemplate="{TemplateBinding ContentTemplate}"
- SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
- </Border>
- <ControlTemplate.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Setter TargetName="Bd" Property="Background" Value="{DynamicResource MuchinfoBrush3}" />
- </Trigger>
- <Trigger Property="IsEnabled" Value="False">
- <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style x:Key="CycleListBoxStyle" TargetType="{x:Type ListBox}">
- <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" />
- <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Disabled" />
- <Setter Property="ScrollViewer.CanContentScroll" Value="true" />
- <Setter Property="ScrollViewer.PanningMode" Value="Both" />
- <Setter Property="Stylus.IsFlicksEnabled" Value="False" />
- <Setter Property="VerticalContentAlignment" Value="Center" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ListBox}">
- <ScrollViewer Focusable="false" Padding="{TemplateBinding Padding}">
- <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
- </ScrollViewer>
- <ControlTemplate.Triggers>
- <MultiTrigger>
- <MultiTrigger.Conditions>
- <Condition Property="IsGrouping" Value="true" />
- </MultiTrigger.Conditions>
- <Setter Property="ScrollViewer.CanContentScroll" Value="false" />
- </MultiTrigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style x:Key="AmountListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
- <Setter Property="Background" Value="Transparent" />
- <Setter Property="HorizontalContentAlignment" Value="Center" />
- <Setter Property="VerticalContentAlignment" Value="Center" />
- <Setter Property="Padding" Value="5" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ListBoxItem}">
- <Border x:Name="Bd"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- Padding="{TemplateBinding Padding}"
- SnapsToDevicePixels="True">
- <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- Content="{TemplateBinding Content}"
- ContentStringFormat="{TemplateBinding ContentStringFormat}"
- ContentTemplate="{TemplateBinding ContentTemplate}"
- SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
- </Border>
- <ControlTemplate.Triggers>
- <Trigger Property="IsEnabled" Value="False">
- <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style x:Key="AmountListBoxStyle" TargetType="{x:Type ListBox}">
- <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" />
- <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Disabled" />
- <Setter Property="ScrollViewer.CanContentScroll" Value="true" />
- <Setter Property="ScrollViewer.PanningMode" Value="Both" />
- <Setter Property="Stylus.IsFlicksEnabled" Value="False" />
- <Setter Property="VerticalContentAlignment" Value="Center" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ListBox}">
- <ScrollViewer Focusable="false" Padding="{TemplateBinding Padding}">
- <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
- </ScrollViewer>
- <ControlTemplate.Triggers>
- <MultiTrigger>
- <MultiTrigger.Conditions>
- <Condition Property="IsGrouping" Value="true" />
- </MultiTrigger.Conditions>
- <Setter Property="ScrollViewer.CanContentScroll" Value="false" />
- </MultiTrigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <!-- 新图表周期 -->
- <Style x:Key="ChartCycleListBoxStyle" TargetType="{x:Type ListBox}">
- <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" />
- <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Disabled" />
- <Setter Property="ScrollViewer.CanContentScroll" Value="true" />
- <Setter Property="BorderThickness" Value="1" />
- <Setter Property="ScrollViewer.PanningMode" Value="Both" />
- <Setter Property="Stylus.IsFlicksEnabled" Value="False" />
- <Setter Property="Foreground" Value="{DynamicResource MuchinfoBrush13}" />
- <Setter Property="Padding" Value="0" />
- <Setter Property="VerticalContentAlignment" Value="Center" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ListBox}">
- <ScrollViewer BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- Focusable="false"
- Padding="{TemplateBinding Padding}">
- <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
- </ScrollViewer>
- <ControlTemplate.Triggers>
- <MultiTrigger>
- <MultiTrigger.Conditions>
- <Condition Property="IsGrouping" Value="true" />
- </MultiTrigger.Conditions>
- <Setter Property="ScrollViewer.CanContentScroll" Value="false" />
- </MultiTrigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style x:Key="ChartCycleListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
- <Setter Property="FontSize" Value="10" />
- <Setter Property="Background" Value="Transparent" />
- <Setter Property="BorderThickness" Value="0,0,1,0" />
- <Setter Property="Foreground" Value="{DynamicResource MainForegroundBrush}" />
- <Setter Property="HorizontalContentAlignment" Value="Center" />
- <Setter Property="VerticalContentAlignment" Value="Center" />
- <Setter Property="BorderBrush" Value="{DynamicResource CommonBorderBrush}" />
- <Setter Property="Padding" Value="3" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ListBoxItem}">
- <Border x:Name="Bd"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- Padding="{TemplateBinding Padding}"
- SnapsToDevicePixels="True">
- <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- Content="{TemplateBinding Content}"
- ContentStringFormat="{TemplateBinding ContentStringFormat}"
- ContentTemplate="{TemplateBinding ContentTemplate}"
- SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
- </Border>
- <ControlTemplate.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Setter TargetName="Bd" Property="Background" Value="{DynamicResource SelectedBackBrush}" />
- </Trigger>
- <Trigger Property="IsEnabled" Value="False">
- <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style x:Key="ChartIndecatorListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
- <Setter Property="FontSize" Value="10" />
- <Setter Property="Background" Value="Transparent" />
- <Setter Property="BorderThickness" Value="0,0,1,0" />
- <Setter Property="Foreground" Value="{DynamicResource MainForegroundBrush}" />
- <Setter Property="HorizontalContentAlignment" Value="Center" />
- <Setter Property="VerticalContentAlignment" Value="Center" />
- <Setter Property="BorderBrush" Value="{DynamicResource ContextBorderBrush}" />
- <Setter Property="Padding" Value="3,1" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ListBoxItem}">
- <Border x:Name="Bd"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- Padding="{TemplateBinding Padding}"
- SnapsToDevicePixels="True">
- <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- Content="{TemplateBinding Content}"
- ContentStringFormat="{TemplateBinding ContentStringFormat}"
- ContentTemplate="{TemplateBinding ContentTemplate}"
- SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
- </Border>
- <ControlTemplate.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Setter TargetName="Bd" Property="Background" Value="{DynamicResource SelectedBackBrush}" />
- </Trigger>
- <Trigger Property="IsEnabled" Value="False">
- <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style TargetType="{x:Type GroupBox}">
- <Setter Property="BorderBrush" Value="{x:Static Themes:ClassicBorderDecorator.ClassicBorderBrush}" />
- <Setter Property="BorderThickness" Value="1" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type GroupBox}">
- <Grid SnapsToDevicePixels="true">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="6" />
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="6" />
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="*" />
- <RowDefinition Height="6" />
- </Grid.RowDefinitions>
- <Border Grid.Row="1"
- Grid.RowSpan="3"
- Grid.Column="0"
- Grid.ColumnSpan="4"
- Background="{TemplateBinding Background}"
- BorderBrush="Transparent"
- BorderThickness="{TemplateBinding BorderThickness}" />
- <Themes:ClassicBorderDecorator Grid.Row="1"
- Grid.RowSpan="3"
- Grid.ColumnSpan="4"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderStyle="Etched"
- BorderThickness="{TemplateBinding BorderThickness}">
- <Themes:ClassicBorderDecorator.OpacityMask>
- <MultiBinding Converter="{StaticResource BorderGapMaskConverter}" ConverterParameter="7">
- <Binding ElementName="Header" Path="ActualWidth" />
- <Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
- <Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
- </MultiBinding>
- </Themes:ClassicBorderDecorator.OpacityMask>
- </Themes:ClassicBorderDecorator>
- <Border x:Name="Header"
- Grid.Row="0"
- Grid.RowSpan="2"
- Grid.Column="1"
- Padding="3,0,3,0">
- <ContentPresenter ContentSource="Header"
- RecognizesAccessKey="True"
- SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
- </Border>
- <ContentPresenter Grid.Row="2"
- Grid.Column="1"
- Grid.ColumnSpan="2"
- Margin="{TemplateBinding Padding}"
- SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
- </Grid>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <LinearGradientBrush x:Key="TextBoxBorder" MappingMode="Absolute" StartPoint="0,0" EndPoint="0,20">
- <GradientStop Offset="0.05" Color="#ABADB3" />
- <GradientStop Offset="0.07" Color="#E2E3EA" />
- <GradientStop Offset="1" Color="#E3E9EF" />
- </LinearGradientBrush>
- <LinearGradientBrush x:Key="TextBox_MouseOver" StartPoint="0,0" EndPoint="0,1">
- <GradientStop Offset="0.05" Color="#5794BF" />
- <GradientStop Offset="0.07" Color="#B7D5EA" />
- <GradientStop Offset="1" Color="#C7E2F1" />
- </LinearGradientBrush>
- <LinearGradientBrush x:Key="TextBox_Focused" StartPoint="0,0" EndPoint="0,1">
- <GradientStop Offset="0.05" Color="#3D7BAD" />
- <GradientStop Offset="0.07" Color="#A4C9E3" />
- <GradientStop Offset="1" Color="#B7D9ED" />
- </LinearGradientBrush>
- <SolidColorBrush x:Key="TextBox_DisabledBorder" Color="#ADB2B5" />
- <SolidColorBrush x:Key="TextBox_DisabledBackground" Color="#F4F4F4" />
- <!-- 默认空样式,避免全局样式影响 -->
- <Style x:Key="LoginAccountTextBoxStyle" TargetType="{x:Type TextBox}">
- <Style.Resources>
- <VisualBrush x:Key="TipBrush"
- AlignmentX="Left"
- Stretch="None"
- TileMode="None">
- <VisualBrush.Visual>
- <StackPanel Orientation="Horizontal">
- <TextBlock FontSize="10"
- Foreground="Transparent"
- Text="1111111" />
- <TextBlock FontSize="13"
- Foreground="#FFA1A6AA"
- Text="{x:Static resource:Client_Resource.Content_AccountNumber}" />
- </StackPanel>
- </VisualBrush.Visual>
- </VisualBrush>
- </Style.Resources>
- <Setter Property="Foreground" Value="#FF444444" />
- <Setter Property="FontSize" Value="13" />
- <Setter Property="BorderThickness" Value="1" />
- <Setter Property="BorderBrush" Value="{StaticResource TextBoxBorder}" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type TextBox}">
- <Grid Height="{TemplateBinding Height}"
- HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch">
- <Border x:Name="Border"
- Height="{TemplateBinding Height}"
- Margin="0,0,8,0"
- Panel.ZIndex="1"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- CornerRadius="1" />
- <Border x:Name="MouseOverVisual"
- Height="{TemplateBinding Height}"
- Margin="0,0,8,0"
- Panel.ZIndex="1"
- BorderBrush="{StaticResource TextBox_MouseOver}"
- BorderThickness="{TemplateBinding BorderThickness}"
- CornerRadius="1"
- Opacity="0" />
- <Border x:Name="FocusVisual"
- Height="{TemplateBinding Height}"
- Margin="0,0,8,0"
- Panel.ZIndex="1"
- BorderBrush="{StaticResource TextBox_Focused}"
- BorderThickness="{TemplateBinding BorderThickness}"
- CornerRadius="1"
- Opacity="0" />
- <Image Width="14"
- Height="14"
- Margin="12,0,0,0"
- HorizontalAlignment="Left"
- VerticalAlignment="Center"
- Panel.ZIndex="1"
- Source="{DynamicResource AccountBoxIcon}" />
- <!--
- <Rectangle Width="12"
- Height="20"
- Margin="12,0,0,0"
- HorizontalAlignment="Left"
- VerticalAlignment="Center"
- Panel.ZIndex="1"
- Fill="{StaticResource LoginAccountTipDrawingBrush}" />
- -->
- <ScrollViewer x:Name="PART_ContentHost"
- Margin="0,0,8,0"
- HorizontalAlignment="Stretch"
- VerticalAlignment="Center"
- VerticalContentAlignment="Center"
- Panel.ZIndex="2"
- Background="{x:Null}"
- FontSize="{TemplateBinding FontSize}"
- Foreground="{TemplateBinding Foreground}"
- SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
- </Grid>
- <ControlTemplate.Triggers>
- <Trigger Property="IsMouseOver" Value="True">
- <Setter TargetName="MouseOverVisual" Property="Opacity" Value="1" />
- </Trigger>
- <Trigger Property="IsFocused" Value="True">
- <Setter TargetName="FocusVisual" Property="Opacity" Value="1" />
- </Trigger>
- <Trigger Property="IsEnabled" Value="False">
- <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource TextBox_DisabledBorder}" />
- <Setter TargetName="Border" Property="Background" Value="{StaticResource TextBox_DisabledBackground}" />
- <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
- </Trigger>
- <Trigger Property="Text" Value="{x:Null}">
- <Setter Property="Background" Value="{StaticResource TipBrush}" />
- </Trigger>
- <Trigger Property="Text" Value="">
- <Setter Property="Background" Value="{StaticResource TipBrush}" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style x:Key="LoginComboBoxStyle" TargetType="{x:Type ComboBox}">
- <Setter Property="Foreground" Value="{DynamicResource TextBoxForeground}" />
- <Setter Property="BorderThickness" Value="1" />
- <Setter Property="VerticalContentAlignment" Value="Center" />
- <Setter Property="SnapsToDevicePixels" Value="true" />
- <Setter Property="IsEditable" Value="True" />
- <Setter Property="BorderBrush" Value="{StaticResource TextBoxBorder}" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ComboBox}">
- <Grid Margin="0,0,8,0">
- <!-- ToggleButton 已数据绑定到 ComboBox 本身以切换 IsDropDownOpen -->
- <ToggleButton x:Name="ToggleButton"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- ClickMode="Press"
- Focusable="false"
- IsChecked="{Binding IsDropDownOpen,
- Mode=TwoWay,
- RelativeSource={RelativeSource TemplatedParent}}"
- Style="{DynamicResource LoginComboBoxToggleButton}" />
- <ContentPresenter x:Name="ContentSite"
- VerticalAlignment="Center"
- Content="{TemplateBinding SelectionBoxItem}"
- ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
- ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
- IsHitTestVisible="False" />
- <!-- 必须将 TextBox 命名为 PART_EditableTextBox,否则 ComboBox 将无法识别它 -->
- <TextBox x:Name="PART_EditableTextBox"
- VerticalAlignment="Stretch"
- VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
- Background="Transparent"
- BorderThickness="0"
- Focusable="True"
- IsHitTestVisible="False"
- IsReadOnly="{TemplateBinding IsReadOnly}"
- Style="{DynamicResource LoginAccountTextBoxStyle}"
- Visibility="Hidden" />
- <!-- Popup 可显示 ComboBox 中的项列表。IsOpen 已数据绑定到通过 ComboBoxToggleButton 来切换的 IsDropDownOpen -->
- <Popup x:Name="Popup"
- AllowsTransparency="True"
- Focusable="False"
- IsOpen="{TemplateBinding IsDropDownOpen}"
- Placement="Bottom"
- PopupAnimation="Fade">
- <Grid x:Name="DropDown"
- MinWidth="{TemplateBinding ActualWidth}"
- MaxHeight="{TemplateBinding MaxDropDownHeight}"
- SnapsToDevicePixels="True">
- <Border x:Name="DropDownBorder"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="1" />
- <ScrollViewer Margin="4,2,4,6"
- CanContentScroll="True"
- HorizontalScrollBarVisibility="Auto"
- SnapsToDevicePixels="True"
- Style="{DynamicResource SimpleScrollViewer}"
- VerticalScrollBarVisibility="Auto">
- <!-- StackPanel 用于显示子级,方法是将 IsItemsHost 设置为 True -->
- <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained" />
- </ScrollViewer>
- </Grid>
- </Popup>
- </Grid>
- <ControlTemplate.Triggers>
- <!-- 这会强制 DropDown 的大小有最小限制(如果它为空) -->
- <Trigger Property="HasItems" Value="false">
- <Setter TargetName="DropDownBorder" Property="MinHeight" Value="95" />
- </Trigger>
- <Trigger Property="IsGrouping" Value="true">
- <Setter Property="ScrollViewer.CanContentScroll" Value="false" />
- </Trigger>
- <Trigger SourceName="Popup" Property="AllowsTransparency" Value="true">
- <Setter TargetName="DropDownBorder" Property="CornerRadius" Value="4" />
- <Setter TargetName="DropDownBorder" Property="Margin" Value="0,2,0,0" />
- </Trigger>
- <Trigger Property="IsEditable" Value="true">
- <Setter Property="IsTabStop" Value="false" />
- <Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible" />
- <Setter TargetName="ContentSite" Property="Visibility" Value="Hidden" />
- </Trigger>
- <Trigger Property="IsEnabled" Value="False">
- <Setter Property="BorderBrush" Value="{StaticResource TextBox_DisabledBackground}" />
- <Setter Property="Background" Value="{StaticResource TextBox_DisabledBackground}" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <!-- 下单界面选择、输入商品的style -->
- <Style x:Key="GoodsComboBoxStyle" TargetType="{x:Type ComboBox}">
- <Setter Property="Foreground" Value="{DynamicResource TextBoxForeground}" />
- <Setter Property="BorderThickness" Value="1" />
- <Setter Property="VerticalContentAlignment" Value="Center" />
- <Setter Property="SnapsToDevicePixels" Value="true" />
- <Setter Property="IsEditable" Value="True" />
- <Setter Property="BorderBrush" Value="{StaticResource TextBoxBorder}" />
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ComboBox}">
- <Grid Margin="0,0,8,0">
- <!-- ToggleButton 已数据绑定到 ComboBox 本身以切换 IsDropDownOpen -->
- <ToggleButton x:Name="ToggleButton"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"
- ClickMode="Press"
- Focusable="false"
- IsChecked="{Binding IsDropDownOpen,
- Mode=TwoWay,
- RelativeSource={RelativeSource TemplatedParent}}"
- Style="{DynamicResource LoginComboBoxToggleButton}" />
- <ContentPresenter x:Name="ContentSite"
- VerticalAlignment="Center"
- Content="{TemplateBinding SelectionBoxItem}"
- ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
- ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
- IsHitTestVisible="False" />
- <!-- 必须将 TextBox 命名为 PART_EditableTextBox,否则 ComboBox 将无法识别它 -->
- <TextBox x:Name="PART_EditableTextBox"
- VerticalAlignment="Stretch"
- VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
- Background="Transparent"
- BorderThickness="0"
- Focusable="True"
- IsHitTestVisible="False"
- IsReadOnly="{TemplateBinding IsReadOnly}"
- Style="{DynamicResource LoginAccountTextBoxStyle}"
- Visibility="Hidden" />
- <!-- Popup 可显示 ComboBox 中的项列表。IsOpen 已数据绑定到通过 ComboBoxToggleButton 来切换的 IsDropDownOpen -->
- <Popup x:Name="Popup"
- AllowsTransparency="True"
- Focusable="False"
- IsOpen="{TemplateBinding IsDropDownOpen}"
- Placement="Bottom"
- PopupAnimation="Fade">
- <Grid x:Name="DropDown"
- MinWidth="{TemplateBinding ActualWidth}"
- MaxHeight="{TemplateBinding MaxDropDownHeight}"
- SnapsToDevicePixels="True">
- <Border x:Name="DropDownBorder"
- Background="{TemplateBinding Background}"
- BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="1" />
- <ScrollViewer Margin="4,2,4,6"
- CanContentScroll="True"
- HorizontalScrollBarVisibility="Auto"
- SnapsToDevicePixels="True"
- Style="{DynamicResource SimpleScrollViewer}"
- VerticalScrollBarVisibility="Auto">
- <!-- StackPanel 用于显示子级,方法是将 IsItemsHost 设置为 True -->
- <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained" />
- </ScrollViewer>
- </Grid>
- </Popup>
- </Grid>
- <ControlTemplate.Triggers>
- <!-- 这会强制 DropDown 的大小有最小限制(如果它为空) -->
- <Trigger Property="HasItems" Value="false">
- <Setter TargetName="DropDownBorder" Property="MinHeight" Value="95" />
- </Trigger>
- <Trigger Property="IsGrouping" Value="true">
- <Setter Property="ScrollViewer.CanContentScroll" Value="false" />
- </Trigger>
- <Trigger SourceName="Popup" Property="AllowsTransparency" Value="true">
- <Setter TargetName="DropDownBorder" Property="CornerRadius" Value="4" />
- <Setter TargetName="DropDownBorder" Property="Margin" Value="0,2,0,0" />
- </Trigger>
- <Trigger Property="IsEditable" Value="true">
- <Setter Property="IsTabStop" Value="false" />
- <Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible" />
- <Setter TargetName="ContentSite" Property="Visibility" Value="Hidden" />
- </Trigger>
- <Trigger Property="IsEnabled" Value="False">
- <Setter Property="BorderBrush" Value="{StaticResource TextBox_DisabledBackground}" />
- <Setter Property="Background" Value="{StaticResource TextBox_DisabledBackground}" />
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- </ResourceDictionary>
|