组合框 WPF 不在行弹出项
Combobox WPF not in line popup items
我有一个问题...我无法内嵌组合框中的项目。我试图移动边距,但这没有任何意义......我附上图片:
这是正常状态(不加保证金)
这是我在组合框中的网格中添加边距时的状态。
我的代码如下:
<!-- ComboBox Styles -->
<Style x:Key="ComboBoxFlatStyle" TargetType="{x:Type ComboBox}">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.CanContentScroll" Value="True" />
<Setter Property="TextElement.Foreground" Value="{StaticResource WindowTextColorBrush}" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="Height" Value="60" />
<Setter Property="FontSize" Value="16" />
<Setter Property="Foreground" Value="{StaticResource SelectedRowColorBrush}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<Border
BorderBrush="{StaticResource TextBoxBorderColorBrush}"
BorderThickness="2">
<Grid>
<ToggleButton
Name="ToggleButton"
Grid.Column="0"
ClickMode="Press"
Focusable="False"
IsChecked="{Binding Path=IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
Template="{StaticResource ComboBoxToggleButtonTemplate}" />
<ContentPresenter
Name="ContentSite"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{TemplateBinding ComboBox.SelectionBoxItem}"
ContentTemplate="{TemplateBinding ComboBox.SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
IsHitTestVisible="False" />
<!-- Popup showing items -->
<Popup
Name="Popup"
AllowsTransparency="True"
Focusable="False"
IsOpen="{TemplateBinding ComboBox.IsDropDownOpen}"
Placement="Bottom"
PopupAnimation="Slide">
<Grid
Name="DropDown"
MinWidth="{TemplateBinding FrameworkElement.ActualWidth}"
MaxHeight="{TemplateBinding ComboBox.MaxDropDownHeight}"
SnapsToDevicePixels="True">
<Border
Name="DropDownBorder"
Background="{StaticResource MainLightColorBrush}"
BorderBrush="{StaticResource SecondaryLightColorBrush}"
BorderThickness="2"/>
<ScrollViewer SnapsToDevicePixels="True">
<ItemsPresenter
Margin="0"
HorizontalAlignment="Stretch"
KeyboardNavigation.DirectionalNavigation="Contained" />
</ScrollViewer>
</Grid>
</Popup>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="ItemsControl.HasItems" Value="False">
<Setter TargetName="DropDownBorder" Property="FrameworkElement.MinHeight" Value="95" />
</Trigger>
<Trigger Property="UIElement.IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5" />
<Setter Property="Background" Value="{StaticResource SelectedRowColorBrush}" />
</Trigger>
<Trigger Property="ItemsControl.IsGrouping" Value="True">
<Setter Property="ScrollViewer.CanContentScroll" Value="False" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- ComboBox Item Styles -->
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="FontSize" Value="16" />
<Setter Property="BorderBrush" Value="{StaticResource SelectedRowColorBrush}" />
<Setter Property="Foreground" Value="{StaticResource SelectedRowColorBrush}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBoxItem">
<Border
Name="Border"
Margin="0"
Padding="10"
BorderThickness="1">
<TextBlock
Height="30"
VerticalAlignment="Center"
TextAlignment="Left">
<ContentPresenter />
</TextBlock>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="True">
<Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource HoverRowColorBrush}" />
<Setter TargetName="Border" Property="Background" Value="{StaticResource HoverRowColorBrush}" />
<Setter TargetName="Border" Property="Margin" Value="2" />
<Setter Property="Foreground" Value="{StaticResource SelectedRowColorBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
有人知道会发生什么吗?
提前致谢...
编辑:colorstyles.xaml 是必需的,所以:
<!-- Light Colors -->
<Color x:Key="MainLightColor">#f8f9fa</Color>
<Color x:Key="SecondaryLightColor">#008ecf</Color>
<Color x:Key="TextLightColor">White</Color>
<!-- Dark Colors -->
<Color x:Key="MainDarkColor">Black</Color>
<Color x:Key="SecondaryDarkColor">#d1e4ff</Color>
<Color x:Key="TextDarkColor">Black</Color>
<!-- Messages -->
<Color x:Key="WarningColor">Orange</Color>
<Color x:Key="InfoColor">Green</Color>
<Color x:Key="ErrorColor">Red</Color>
<!-- Loading -->
<Color x:Key="LoadingAnimationColor">#f7f7f7</Color>
<Color x:Key="InlineLoadingAnimationColor">#d1e4ff</Color>
<!-- Zoom Control -->
<Color x:Key="ZoomControlColor">LightGray</Color>
<!--#region Colors-->
<SolidColorBrush x:Key="MainLightColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="SecondaryLightColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="TextLightColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="TextDarkColorBrush" Color="{StaticResource TextDarkColor}" />
<!--#endregion-->
<!--#region Window-->
<SolidColorBrush x:Key="WindowBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="WindowTextColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Popup-->
<SolidColorBrush x:Key="PopUpBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="PopUpTextColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="PopUpBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Forms-->
<SolidColorBrush x:Key="FormsBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="TabFormBackgroundColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="FormsTextColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="FormsErrorTextColorBrush" Color="{StaticResource ErrorColor}" />
<SolidColorBrush x:Key="FormsBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Buttons-->
<!--#region Normal Button-->
<SolidColorBrush x:Key="BtnBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="BtnTextColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="BtnBorderColorBrush" Color="{StaticResource MainLightColor}" />
<!--#endregion-->
<!--#region Action Button-->
<SolidColorBrush x:Key="BtnActionBackgroundColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="BtnActionTextColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="BtnActionBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="BtnNextBackTextColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Disable-->
<SolidColorBrush x:Key="BtnDisableBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="BtnDisableTextColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="BtnDisableBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Selected-->
<SolidColorBrush x:Key="BtnSelectedBackgroundColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="BtnSelectedTextColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="BtnSelectedBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#endregion-->
<!--#region ListItem-->
<SolidColorBrush x:Key="ListItemEnableBackgroundColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="ListItemEnableTextColorBrush" Color="{StaticResource TextDarkColor}" />
<SolidColorBrush x:Key="ListItemEnableBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="SelectedRowColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="HoverRowColorBrush" Color="{StaticResource SecondaryDarkColor}" />
<!--#endregion-->
<!--#region TextBox-->
<SolidColorBrush x:Key="TextBoxBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="TextBoxTextColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="TextInputColorBrush" Color="{StaticResource MainDarkColor}" />
<SolidColorBrush x:Key="TextBoxBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Icon-->
<SolidColorBrush x:Key="IconLightColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="IconDarkColorBrush" Color="{StaticResource MainDarkColor}" />
<SolidColorBrush x:Key="IconColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Messages-->
<SolidColorBrush x:Key="WarningColorBrush" Color="{StaticResource WarningColor}" />
<SolidColorBrush x:Key="InfoColorBrush" Color="{StaticResource InfoColor}" />
<SolidColorBrush x:Key="ErrorColorBrush" Color="{StaticResource ErrorColor}" />
<!--#endregion-->
<!--#region Overview Forms-->
<SolidColorBrush x:Key="OverviewFormBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Selected-->
<SolidColorBrush x:Key="FontButtonColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="FontGenericColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Material Design Colors -->
<SolidColorBrush x:Key="PrimaryHueMidBrush2" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="PrimaryHueMidForegroundBrush" Color="{StaticResource MainLightColor}" />
<!--#endregion-->
偏移量来自模板周围的边框而不是按钮,因此增加了它的厚度。
这对你有用:
<Style x:Key="ComboBoxFlatStyle" TargetType="{x:Type ComboBox}">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="TextElement.Foreground" Value="{StaticResource WindowTextColorBrush}" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="Height" Value="60" />
<Setter Property="FontSize" Value="16" />
<Setter Property="Foreground" Value="{StaticResource SelectedRowColorBrush}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<Grid>
<ToggleButton
Name="ToggleButton"
Grid.Column="0"
ClickMode="Press"
Focusable="False"
IsChecked="{Binding Path=IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
Template="{StaticResource ComboBoxToggleButtonTemplate}" />
<Border
BorderBrush="{StaticResource TextBoxBorderColorBrush}"
BorderThickness="2">
<ContentPresenter
Name="ContentSite"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{TemplateBinding ComboBox.SelectionBoxItem}"
ContentTemplate="{TemplateBinding ComboBox.SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
IsHitTestVisible="False" />
<!-- Popup showing items -->
</Border>
<Popup
Name="Popup"
AllowsTransparency="True"
Focusable="False"
IsOpen="{TemplateBinding ComboBox.IsDropDownOpen}"
Placement="Bottom"
PopupAnimation="Slide">
<Grid
Name="DropDown"
MinWidth="{TemplateBinding FrameworkElement.ActualWidth}"
MaxHeight="{TemplateBinding ComboBox.MaxDropDownHeight}">
<Border
Name="DropDownBorder"
Background="{StaticResource MainLightColorBrush}"
BorderBrush="{StaticResource SecondaryLightColorBrush}"
BorderThickness="2"/>
<ScrollViewer SnapsToDevicePixels="True">
<ItemsPresenter
Margin="0"
HorizontalAlignment="Stretch"
KeyboardNavigation.DirectionalNavigation="Contained" />
</ScrollViewer>
</Grid>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="ItemsControl.HasItems" Value="False">
<Setter TargetName="DropDownBorder" Property="FrameworkElement.MinHeight" Value="95" />
</Trigger>
<Trigger Property="UIElement.IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5" />
<Setter Property="Background" Value="{StaticResource SelectedRowColorBrush}" />
</Trigger>
<Trigger Property="ItemsControl.IsGrouping" Value="True">
<Setter Property="ScrollViewer.CanContentScroll" Value="False" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我有一个问题...我无法内嵌组合框中的项目。我试图移动边距,但这没有任何意义......我附上图片:
这是正常状态(不加保证金)
这是我在组合框中的网格中添加边距时的状态。
我的代码如下:
<!-- ComboBox Styles -->
<Style x:Key="ComboBoxFlatStyle" TargetType="{x:Type ComboBox}">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.CanContentScroll" Value="True" />
<Setter Property="TextElement.Foreground" Value="{StaticResource WindowTextColorBrush}" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="Height" Value="60" />
<Setter Property="FontSize" Value="16" />
<Setter Property="Foreground" Value="{StaticResource SelectedRowColorBrush}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<Border
BorderBrush="{StaticResource TextBoxBorderColorBrush}"
BorderThickness="2">
<Grid>
<ToggleButton
Name="ToggleButton"
Grid.Column="0"
ClickMode="Press"
Focusable="False"
IsChecked="{Binding Path=IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
Template="{StaticResource ComboBoxToggleButtonTemplate}" />
<ContentPresenter
Name="ContentSite"
Margin="10"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{TemplateBinding ComboBox.SelectionBoxItem}"
ContentTemplate="{TemplateBinding ComboBox.SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
IsHitTestVisible="False" />
<!-- Popup showing items -->
<Popup
Name="Popup"
AllowsTransparency="True"
Focusable="False"
IsOpen="{TemplateBinding ComboBox.IsDropDownOpen}"
Placement="Bottom"
PopupAnimation="Slide">
<Grid
Name="DropDown"
MinWidth="{TemplateBinding FrameworkElement.ActualWidth}"
MaxHeight="{TemplateBinding ComboBox.MaxDropDownHeight}"
SnapsToDevicePixels="True">
<Border
Name="DropDownBorder"
Background="{StaticResource MainLightColorBrush}"
BorderBrush="{StaticResource SecondaryLightColorBrush}"
BorderThickness="2"/>
<ScrollViewer SnapsToDevicePixels="True">
<ItemsPresenter
Margin="0"
HorizontalAlignment="Stretch"
KeyboardNavigation.DirectionalNavigation="Contained" />
</ScrollViewer>
</Grid>
</Popup>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="ItemsControl.HasItems" Value="False">
<Setter TargetName="DropDownBorder" Property="FrameworkElement.MinHeight" Value="95" />
</Trigger>
<Trigger Property="UIElement.IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5" />
<Setter Property="Background" Value="{StaticResource SelectedRowColorBrush}" />
</Trigger>
<Trigger Property="ItemsControl.IsGrouping" Value="True">
<Setter Property="ScrollViewer.CanContentScroll" Value="False" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- ComboBox Item Styles -->
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="FontSize" Value="16" />
<Setter Property="BorderBrush" Value="{StaticResource SelectedRowColorBrush}" />
<Setter Property="Foreground" Value="{StaticResource SelectedRowColorBrush}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBoxItem">
<Border
Name="Border"
Margin="0"
Padding="10"
BorderThickness="1">
<TextBlock
Height="30"
VerticalAlignment="Center"
TextAlignment="Left">
<ContentPresenter />
</TextBlock>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="True">
<Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource HoverRowColorBrush}" />
<Setter TargetName="Border" Property="Background" Value="{StaticResource HoverRowColorBrush}" />
<Setter TargetName="Border" Property="Margin" Value="2" />
<Setter Property="Foreground" Value="{StaticResource SelectedRowColorBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
有人知道会发生什么吗?
提前致谢...
编辑:colorstyles.xaml 是必需的,所以:
<!-- Light Colors -->
<Color x:Key="MainLightColor">#f8f9fa</Color>
<Color x:Key="SecondaryLightColor">#008ecf</Color>
<Color x:Key="TextLightColor">White</Color>
<!-- Dark Colors -->
<Color x:Key="MainDarkColor">Black</Color>
<Color x:Key="SecondaryDarkColor">#d1e4ff</Color>
<Color x:Key="TextDarkColor">Black</Color>
<!-- Messages -->
<Color x:Key="WarningColor">Orange</Color>
<Color x:Key="InfoColor">Green</Color>
<Color x:Key="ErrorColor">Red</Color>
<!-- Loading -->
<Color x:Key="LoadingAnimationColor">#f7f7f7</Color>
<Color x:Key="InlineLoadingAnimationColor">#d1e4ff</Color>
<!-- Zoom Control -->
<Color x:Key="ZoomControlColor">LightGray</Color>
<!--#region Colors-->
<SolidColorBrush x:Key="MainLightColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="SecondaryLightColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="TextLightColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="TextDarkColorBrush" Color="{StaticResource TextDarkColor}" />
<!--#endregion-->
<!--#region Window-->
<SolidColorBrush x:Key="WindowBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="WindowTextColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Popup-->
<SolidColorBrush x:Key="PopUpBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="PopUpTextColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="PopUpBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Forms-->
<SolidColorBrush x:Key="FormsBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="TabFormBackgroundColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="FormsTextColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="FormsErrorTextColorBrush" Color="{StaticResource ErrorColor}" />
<SolidColorBrush x:Key="FormsBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Buttons-->
<!--#region Normal Button-->
<SolidColorBrush x:Key="BtnBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="BtnTextColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="BtnBorderColorBrush" Color="{StaticResource MainLightColor}" />
<!--#endregion-->
<!--#region Action Button-->
<SolidColorBrush x:Key="BtnActionBackgroundColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="BtnActionTextColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="BtnActionBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="BtnNextBackTextColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Disable-->
<SolidColorBrush x:Key="BtnDisableBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="BtnDisableTextColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="BtnDisableBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Selected-->
<SolidColorBrush x:Key="BtnSelectedBackgroundColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="BtnSelectedTextColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="BtnSelectedBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#endregion-->
<!--#region ListItem-->
<SolidColorBrush x:Key="ListItemEnableBackgroundColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="ListItemEnableTextColorBrush" Color="{StaticResource TextDarkColor}" />
<SolidColorBrush x:Key="ListItemEnableBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="SelectedRowColorBrush" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="HoverRowColorBrush" Color="{StaticResource SecondaryDarkColor}" />
<!--#endregion-->
<!--#region TextBox-->
<SolidColorBrush x:Key="TextBoxBackgroundColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="TextBoxTextColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="TextInputColorBrush" Color="{StaticResource MainDarkColor}" />
<SolidColorBrush x:Key="TextBoxBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Icon-->
<SolidColorBrush x:Key="IconLightColorBrush" Color="{StaticResource MainLightColor}" />
<SolidColorBrush x:Key="IconDarkColorBrush" Color="{StaticResource MainDarkColor}" />
<SolidColorBrush x:Key="IconColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Messages-->
<SolidColorBrush x:Key="WarningColorBrush" Color="{StaticResource WarningColor}" />
<SolidColorBrush x:Key="InfoColorBrush" Color="{StaticResource InfoColor}" />
<SolidColorBrush x:Key="ErrorColorBrush" Color="{StaticResource ErrorColor}" />
<!--#endregion-->
<!--#region Overview Forms-->
<SolidColorBrush x:Key="OverviewFormBorderColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Selected-->
<SolidColorBrush x:Key="FontButtonColorBrush" Color="{StaticResource TextLightColor}" />
<SolidColorBrush x:Key="FontGenericColorBrush" Color="{StaticResource SecondaryLightColor}" />
<!--#endregion-->
<!--#region Material Design Colors -->
<SolidColorBrush x:Key="PrimaryHueMidBrush2" Color="{StaticResource SecondaryLightColor}" />
<SolidColorBrush x:Key="PrimaryHueMidForegroundBrush" Color="{StaticResource MainLightColor}" />
<!--#endregion-->
偏移量来自模板周围的边框而不是按钮,因此增加了它的厚度。
这对你有用:
<Style x:Key="ComboBoxFlatStyle" TargetType="{x:Type ComboBox}">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="TextElement.Foreground" Value="{StaticResource WindowTextColorBrush}" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="Height" Value="60" />
<Setter Property="FontSize" Value="16" />
<Setter Property="Foreground" Value="{StaticResource SelectedRowColorBrush}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<Grid>
<ToggleButton
Name="ToggleButton"
Grid.Column="0"
ClickMode="Press"
Focusable="False"
IsChecked="{Binding Path=IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
Template="{StaticResource ComboBoxToggleButtonTemplate}" />
<Border
BorderBrush="{StaticResource TextBoxBorderColorBrush}"
BorderThickness="2">
<ContentPresenter
Name="ContentSite"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{TemplateBinding ComboBox.SelectionBoxItem}"
ContentTemplate="{TemplateBinding ComboBox.SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
IsHitTestVisible="False" />
<!-- Popup showing items -->
</Border>
<Popup
Name="Popup"
AllowsTransparency="True"
Focusable="False"
IsOpen="{TemplateBinding ComboBox.IsDropDownOpen}"
Placement="Bottom"
PopupAnimation="Slide">
<Grid
Name="DropDown"
MinWidth="{TemplateBinding FrameworkElement.ActualWidth}"
MaxHeight="{TemplateBinding ComboBox.MaxDropDownHeight}">
<Border
Name="DropDownBorder"
Background="{StaticResource MainLightColorBrush}"
BorderBrush="{StaticResource SecondaryLightColorBrush}"
BorderThickness="2"/>
<ScrollViewer SnapsToDevicePixels="True">
<ItemsPresenter
Margin="0"
HorizontalAlignment="Stretch"
KeyboardNavigation.DirectionalNavigation="Contained" />
</ScrollViewer>
</Grid>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="ItemsControl.HasItems" Value="False">
<Setter TargetName="DropDownBorder" Property="FrameworkElement.MinHeight" Value="95" />
</Trigger>
<Trigger Property="UIElement.IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5" />
<Setter Property="Background" Value="{StaticResource SelectedRowColorBrush}" />
</Trigger>
<Trigger Property="ItemsControl.IsGrouping" Value="True">
<Setter Property="ScrollViewer.CanContentScroll" Value="False" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>