<Style x:Key="ComboBoxChartStyle" TargetType="{x:Type ComboBox}">
<Setter Property="FontSize" Value="https://bbs.csdn.net/topics/24" />
<Setter Property="Foreground" Value="https://bbs.csdn.net/topics/#33FF00" />
<Setter Property="SnapsToDevicePixels" Value="https://bbs.csdn.net/topics/true"/>
<Setter Property="OverridesDefaultStyle" Value="https://bbs.csdn.net/topics/true"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="https://bbs.csdn.net/topics/Hidden"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="https://bbs.csdn.net/topics/Auto"/>
<Setter Property="ScrollViewer.CanContentScroll" Value="https://bbs.csdn.net/topics/true"/>
<Setter Property="MaxDropDownHeight" Value="https://bbs.csdn.net/topics/682"/>
<!--<Setter Property="MinWidth" Value="https://bbs.csdn.net/topics/50"/>
<Setter Property="MinHeight" Value="https://bbs.csdn.net/topics/32"/>-->
<Setter Property="ItemContainerStyle" Value="https://bbs.csdn.net/topics/{DynamicResource ComboBoxItemChartStyle}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<Grid>
<Border x:Name="ToggleBorder">
<ToggleButton
Name="ToggleButton"
Style="{StaticResource ComboBoxChartToggleButton}"
Focusable="false"
IsChecked="{Binding Path=IsDropDownOpen,Mode=TwoWay,RelativeSource={RelativeSource TemplatedParent}}"
ClickMode="Press">
</ToggleButton>
</Border>
<ContentPresenter
Name="ContentSite"
IsHitTestVisible="False"
Content="{TemplateBinding SelectionBoxItem}"
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
Margin="10,3,30.0,3"
VerticalAlignment="Center"
HorizontalAlignment="Center">
</ContentPresenter>
<TextBox x:Name="PART_EditableTextBox"
Style="{x:Null}"
Template="{StaticResource ComboBoxTextBox}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="3,3,23,3"
Focusable="True"
Visibility="Hidden"
Foreground="White"
CaretBrush="White"
IsReadOnly="{TemplateBinding IsReadOnly}"/>
<Popup
Name="PART_Popup"
Placement="Bottom"
IsOpen="{TemplateBinding IsDropDownOpen}"
AllowsTransparency="True"
Focusable="False"
PopupAnimation="Slide">
<Border
x:Name="DropDownBorder"
SnapsToDevicePixels="True"
MinWidth="{TemplateBinding ActualWidth}"
MaxHeight="{TemplateBinding MaxDropDownHeight}"
Padding="5,0,7,0">
<Grid >
<Border
Background="#096ad4" />
<ScrollViewer Margin="4,6,4,6" SnapsToDevicePixels="True">
<StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained" />
</ScrollViewer>
</Grid>
</Border>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasItems" Value="https://bbs.csdn.net/topics/false">
<Setter TargetName="DropDownBorder" Property="MinHeight" Value="https://bbs.csdn.net/topics/95"/>
</Trigger>
<Trigger Property="IsGrouping" Value="https://bbs.csdn.net/topics/true">
<Setter Property="ScrollViewer.CanContentScroll" Value="https://bbs.csdn.net/topics/false"/>
</Trigger>
<Trigger SourceName="PART_Popup" Property="Popup.AllowsTransparency" Value="https://bbs.csdn.net/topics/true">
<Setter TargetName="DropDownBorder" Property="CornerRadius" Value="https://bbs.csdn.net/topics/0"/>
<Setter TargetName="DropDownBorder" Property="Margin" Value="https://bbs.csdn.net/topics/0,2,0,0"/>
</Trigger>
<Trigger Property="IsEditable" Value="https://bbs.csdn.net/topics/true">
<Setter Property="IsTabStop" Value="https://bbs.csdn.net/topics/false"/>
<Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="https://bbs.csdn.net/topics/Visible"/>
<Setter TargetName="ContentSite" Property="Visibility" Value="https://bbs.csdn.net/topics/Hidden"/>
<Setter TargetName="PART_EditableTextBox" Property="Background" Value="https://bbs.csdn.net/topics/{DynamicResource tabItem_hover_bg}"/>
</Trigger>
<Trigger Property="IsSelected" Value="https://bbs.csdn.net/topics/True">
<!--<Setter TargetName="ToggleButton" Property="ImageSource" Value="https://bbs.csdn.net/topics/{DynamicResource tabItem_hover_bg}"></Setter>-->
<Setter TargetName="DropDownBorder" Property="Background" >
<Setter.Value>
<ImageBrush ImageSource="{ DynamicResource tabItem_hover_bg}"></ImageBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="SelectedItem" Value="https://bbs.csdn.net/topics/true">
<Setter TargetName="PART_EditableTextBox" Property="Background" Value="https://bbs.csdn.net/topics/{DynamicResource tabItem_hover_bg}"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
</Style.Triggers>
</Style>
以上為combox的樣式,我是通過點擊ToggleButton 來雙向系結,實作Popup, 下面貼上ToggluButton代碼
<Style x:Key="ComboBoxChartToggleButton" TargetType="ToggleButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Grid>
<Grid>
<Grid.ColumnDefinitions>
<!--<ColumnDefinition Width="auto"/>-->
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="1"></RowDefinition>
</Grid.RowDefinitions>
<Image Name="imgRight" Source="{DynamicResource tabItem_normal_bg}" Stretch="Fill"/>
<Rectangle Grid.Column="1" Fill="Black"></Rectangle>
<Path x:Name="path" VerticalAlignment="Bottom" Grid.Row="0" Grid.Column="0" Data="https://bbs.csdn.net/topics/F1M8,0C11,3 14,6 17,9 11.334,9 5.666,9 0,9 2.666,6 5.334,3 8,0z" Fill="#ffd800" Width="17" Height="9" Visibility="Hidden"/>
</Grid>
<Path x:Name="BtnArrow" Margin="0,0,20,0" Width="20" Data="https://bbs.csdn.net/topics/F1 M 301.14,-189.041L 311.57,-189.041L 306.355,-182.942L 301.14,-189.041 Z " HorizontalAlignment="Right" Fill="#00d9f9" Stretch="Uniform"/>
</Grid>
<ControlTemplate.Resources>
<Storyboard x:Key="SelectedAction">
<DoubleAnimation Storyboard.TargetName="path" Storyboard.TargetProperty="(Canvas.Left)" From="0" To="92" Duration="0:0:0.8">
</DoubleAnimation>
</Storyboard>
</ControlTemplate.Resources>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="https://bbs.csdn.net/topics/True">
<!--<Setter TargetName="imgRight" Property="Source" Value="https://bbs.csdn.net/topics/{DynamicResource tabItem_hover_bg}"/>-->
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource SelectedAction}"/>
</Trigger.EnterActions>
</Trigger>
<Trigger Property="IsChecked" Value="https://bbs.csdn.net/topics/True">
<Setter TargetName="path" Property="Visibility" Value="https://bbs.csdn.net/topics/Visible"/>
<Setter TargetName="imgRight" Property="Source" Value="https://bbs.csdn.net/topics/{DynamicResource tabItem_hover_bg}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我的問題 就是,我現在點擊 combox 背景顏色改變了(例如是藍色),并且下拉框出現,我選擇其中一個item后,combox背景色又會變成初始的(白色),我要的還是原有點擊的顏色(藍色)。請問怎么實作。
uj5u.com熱心網友回復:
你的 Trigger 不就這么寫了 <Trigger Property="IsSelected" Value="https://bbs.csdn.net/topics/True"> 你也許需要一點后臺代碼了,或者讓背景色默認系結當前是否有項,通過一個轉換邏輯uj5u.com熱心網友回復:
我試了這個方法 還是不行,。我現在選擇item 要觸發togglebutton 的背景色修改, 就對了。試了好多觸發器還是不行,
uj5u.com熱心網友回復:
我現在背景色 顯示的是togglebutton定義的圖片,我寫了 IsChecked觸發器 。 當我選擇ComboxItem項的時候,我的togglebutton相當于是沒點擊 所以背景色還原了。所以改如何寫個觸發器。能點擊item項觸發到togglebutton的背景色,還是有別的方法?uj5u.com熱心網友回復:
系結也不可以?uj5u.com熱心網友回復:
怎么系結,可以詳細點嗎,我也想用系結 ,但是代碼怎么寫
uj5u.com熱心網友回復:
[潘鵬整理WPF(13)元素之間系結_Eden's space-CSDN博客](https://blog.csdn.net/PanPen120/article/details/48753071 )[潘鵬整理WPF(14)系結到非元素物件_Eden's space-CSDN博客](https://blog.csdn.net/PanPen120/article/details/48794845?depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-4&utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-4 )
[WPF中的資料系結--元素系結_網路_u014453443的博客-CSDN博客](https://blog.csdn.net/u014453443/article/details/89706007 )
[WPF學習(8)-元素系結_資料庫_whjhb的專欄-CSDN博客](https://blog.csdn.net/whjhb/article/details/84580026 )
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/53966.html
標籤:C#
