123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333 |
- <UserControl x:Class="CollaborativePlatformMain.Form.UserControlForm.NativeCombox"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:local="clr-namespace:CollaborativePlatformMain.Form.UserControlForm"
- mc:Ignorable="d"
- d:DesignHeight="30" d:DesignWidth="200">
- <UserControl.Resources>
- <LinearGradientBrush x:Key="NormalBrush" StartPoint="0,0" EndPoint="0,1">
- <GradientBrush.GradientStops>
- <GradientStopCollection>
- <GradientStop Color="White" Offset="0.0"/>
- <GradientStop Color="White" Offset="1.0"/>
- </GradientStopCollection>
- </GradientBrush.GradientStops>
- </LinearGradientBrush>
- <LinearGradientBrush x:Key="NormalBorderBrush" StartPoint="0,0" EndPoint="0,1">
- <GradientBrush.GradientStops>
- <GradientStopCollection>
- <GradientStop Color="White" Offset="0.0"/>
- <GradientStop Color="White" Offset="1.0"/>
- </GradientStopCollection>
- </GradientBrush.GradientStops>
- </LinearGradientBrush>
- <SolidColorBrush x:Key="GlyphBrush" Color="#444" />
- <LinearGradientBrush x:Key="DarkBrush" StartPoint="0,0" EndPoint="0,1">
- <GradientBrush.GradientStops>
- <GradientStopCollection>
- <GradientStop Color="White" Offset="0.0"/>
- <GradientStop Color="White" Offset="1.0"/>
- </GradientStopCollection>
- </GradientBrush.GradientStops>
- </LinearGradientBrush>
- <LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
- <GradientBrush.GradientStops>
- <GradientStopCollection>
- <GradientStop Color="White" Offset="0.0"/>
- <GradientStop Color="White" Offset="0.1"/>
- <GradientStop Color="White" Offset="0.9"/>
- <GradientStop Color="White" Offset="1.0"/>
- </GradientStopCollection>
- </GradientBrush.GradientStops>
- </LinearGradientBrush>
- <SolidColorBrush x:Key="DisabledForegroundBrush" Color="White" />
- <SolidColorBrush x:Key="DisabledBackgroundBrush" Color="White" />
- <SolidColorBrush x:Key="WindowBackgroundBrush" Color="White" />
- <SolidColorBrush x:Key="SelectedBackgroundBrush" Color="White" />
- <SolidColorBrush x:Key="ComboBox.Static.Border" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Static.Editable.Background" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Static.Editable.Border" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Static.Editable.Button.Background" Color="Transparent"/>
- <SolidColorBrush x:Key="ComboBox.Static.Editable.Button.Border" Color="Transparent"/>
- <SolidColorBrush x:Key="ComboBox.MouseOver.Glyph" Color="White"/>
- <LinearGradientBrush x:Key="ComboBox.MouseOver.Background" EndPoint="0,1" StartPoint="0,0">
- <GradientStop Color="White" Offset="0.0"/>
- <GradientStop Color="White" Offset="1.0"/>
- </LinearGradientBrush>
- <SolidColorBrush x:Key="ComboBox.MouseOver.Border" Color="#FF7EB4EA"/>
- <SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Background" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Border" Color="White"/>
- <LinearGradientBrush x:Key="ComboBox.MouseOver.Editable.Button.Background" EndPoint="0,1" StartPoint="0,0">
- <GradientStop Color="White" Offset="0.0"/>
- <GradientStop Color="White" Offset="1.0"/>
- </LinearGradientBrush>
- <SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Button.Border" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Pressed.Glyph" Color="White"/>
- <LinearGradientBrush x:Key="ComboBox.Pressed.Background" EndPoint="0,1" StartPoint="0,0">
- <GradientStop Color="White" Offset="0.0"/>
- <GradientStop Color="White" Offset="1.0"/>
- </LinearGradientBrush>
- <SolidColorBrush x:Key="ComboBox.Pressed.Border" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Pressed.Editable.Background" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Pressed.Editable.Border" Color="White"/>
- <LinearGradientBrush x:Key="ComboBox.Pressed.Editable.Button.Background" EndPoint="0,1" StartPoint="0,0">
- <GradientStop Color="White" Offset="0.0"/>
- <GradientStop Color="White" Offset="1.0"/>
- </LinearGradientBrush>
- <SolidColorBrush x:Key="ComboBox.Pressed.Editable.Button.Border" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Disabled.Glyph" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Disabled.Background" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Disabled.Border" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Disabled.Editable.Background" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Disabled.Editable.Border" Color="White"/>
- <SolidColorBrush x:Key="ComboBox.Disabled.Editable.Button.Background" Color="Transparent"/>
- <SolidColorBrush x:Key="ComboBox.Disabled.Editable.Button.Border" Color="Transparent"/>
- <SolidColorBrush x:Key="ComboBox.Static.Glyph" Color="Black"/>
- <ControlTemplate x:Key="ComboBoxTextBox" TargetType="TextBox">
- <Border x:Name="PART_ContentHost" Focusable="False" Background="{TemplateBinding Background}" />
- </ControlTemplate>
- <Style x:Key="ComboBoxToggleButton" TargetType="ToggleButton">
- <Setter Property="OverridesDefaultStyle" Value="true"/>
- <Setter Property="IsTabStop" Value="false"/>
- <Setter Property="Focusable" Value="false"/>
- <Setter Property="ClickMode" Value="Press"/>
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type ToggleButton}">
- <Border x:Name="templateRoot" SnapsToDevicePixels="true" Background="White">
- <Border x:Name="splitBorder" HorizontalAlignment="Right" Margin="0,0,2,0" SnapsToDevicePixels="true" Width="25" BorderBrush="White" BorderThickness="1,0,0,0">
- <Path x:Name="arrow" Data="F1 M 0,0 L 3.667,2.66665 L 7.3334,0 L 7.3334,-1.78168 L 3.6667,0.88501 L0,-1.78168 L0,0 Z" Fill="{StaticResource ComboBox.Static.Glyph}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Border>
- </Border>
- <ControlTemplate.Triggers>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true"/>
- <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="false"/>
- <Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="false"/>
- <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="true"/>
- </MultiDataTrigger.Conditions>
- <Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.Static.Editable.Background}"/>
- <Setter Property="Background" TargetName="splitBorder" Value="{StaticResource ComboBox.Static.Editable.Button.Background}"/>
- </MultiDataTrigger>
- <Trigger Property="IsMouseOver" Value="true">
- <Setter Property="Fill" TargetName="arrow" Value="{StaticResource ComboBox.MouseOver.Glyph}"/>
- </Trigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="true"/>
- <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="false"/>
- </MultiDataTrigger.Conditions>
- <Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.MouseOver.Background}"/>
- </MultiDataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="true"/>
- <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true"/>
- </MultiDataTrigger.Conditions>
- <Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.MouseOver.Editable.Background}"/>
- <Setter Property="Background" TargetName="splitBorder" Value="{StaticResource ComboBox.MouseOver.Editable.Button.Background}"/>
- </MultiDataTrigger>
- <Trigger Property="IsPressed" Value="true">
- <Setter Property="Fill" TargetName="arrow" Value="{StaticResource ComboBox.Pressed.Glyph}"/>
- </Trigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="true"/>
- <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="false"/>
- </MultiDataTrigger.Conditions>
- <Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.Pressed.Background}"/>
- </MultiDataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="true"/>
- <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true"/>
- </MultiDataTrigger.Conditions>
- <Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.Pressed.Editable.Background}"/>
- <Setter Property="Background" TargetName="splitBorder" Value="{StaticResource ComboBox.Pressed.Editable.Button.Background}"/>
- </MultiDataTrigger>
- <Trigger Property="IsEnabled" Value="false">
- <Setter Property="Fill" TargetName="arrow" Value="{StaticResource ComboBox.Disabled.Glyph}"/>
- </Trigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="false"/>
- <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="false"/>
- </MultiDataTrigger.Conditions>
- <Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.Disabled.Background}"/>
- </MultiDataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="false"/>
- <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true"/>
- </MultiDataTrigger.Conditions>
- <Setter Property="Background" TargetName="templateRoot" Value="{StaticResource ComboBox.Disabled.Editable.Background}"/>
- <Setter Property="Background" TargetName="splitBorder" Value="{StaticResource ComboBox.Disabled.Editable.Button.Background}"/>
- </MultiDataTrigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- <Style x:Key="{x:Type ComboBoxItem}" TargetType="ComboBoxItem">
- <Setter Property="SnapsToDevicePixels" Value="true"/>
- <Setter Property="OverridesDefaultStyle" Value="true"/>
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="ComboBoxItem">
- <Border
- Name="Border"
- Padding="2"
- SnapsToDevicePixels="true">
- <ContentPresenter />
- </Border>
- <ControlTemplate.Triggers>
- <Trigger Property="IsHighlighted" Value="true">
- <Setter TargetName="Border" Property="Background" Value="{StaticResource SelectedBackgroundBrush}"/>
- </Trigger>
- <Trigger Property="IsEnabled" Value="false">
- <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- </UserControl.Resources>
- <Grid Background="#aaa">
- <Border Margin="1,1,1,1" BorderBrush="Black" CornerRadius="4,4,4,4">
- <ComboBox x:Name="CheckableCombo">
- <ComboBox.ItemTemplate>
- <HierarchicalDataTemplate>
- <CheckBox Content="{Binding Name}" Height="30"
- IsChecked="{Binding IsSelect, Mode=TwoWay}"
- Tag="{RelativeSource FindAncestor, AncestorType={x:Type ComboBox}}"
- Click="CheckBox_Click" VerticalContentAlignment="Center" HorizontalAlignment="Left"></CheckBox>
- </HierarchicalDataTemplate>
- </ComboBox.ItemTemplate>
- <ComboBox.Template>
- <ControlTemplate TargetType="ComboBox">
- <Grid>
- <ToggleButton Name="ToggleButton"
- Style="{StaticResource ComboBoxToggleButton}"
- Focusable="False" Click="ToggleButton_Click"
- IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}">
- </ToggleButton>
- <ContentPresenter x:Name="Presenter"
- IsHitTestVisible="False"
- Margin="3, 3, 23, 3"
- VerticalAlignment="Center"
- HorizontalAlignment="Left">
- <ContentPresenter.Content>
- <TextBlock TextTrimming="CharacterEllipsis"
- Text="{Binding Path=Text, Mode=TwoWay, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}">
- </TextBlock>
- </ContentPresenter.Content>
- </ContentPresenter>
- <TextBox x:Name="EditableTextBox"
- Style="{x:Null}"
- Template="{StaticResource ComboBoxTextBox}"
- HorizontalAlignment="Left"
- VerticalAlignment="Center"
- Margin="3,3,23,3"
- Focusable="True"
- Background="Transparent"
- Visibility="Hidden"
- IsReadOnly="{TemplateBinding IsReadOnly}"/>
- <Popup
- Name="Popup"
- Placement="Bottom"
- IsOpen="{TemplateBinding IsDropDownOpen}"
- AllowsTransparency="True"
- Focusable="False"
- PopupAnimation="Slide">
- <Grid
- Name="DropDown"
- SnapsToDevicePixels="True"
- MinWidth="{TemplateBinding ActualWidth}"
- MaxHeight="{TemplateBinding MaxDropDownHeight}">
- <Border
- x:Name="DropDownBorder"
- Background="{StaticResource WindowBackgroundBrush}" BorderThickness="1,1,1,1" BorderBrush="White"/>
- <ScrollViewer Margin="4,6,4,6" SnapsToDevicePixels="True" DataContext="{Binding}">
- <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained" />
- </ScrollViewer>
- </Grid>
- </Popup>
- </Grid>
- <ControlTemplate.Triggers>
- <Trigger Property="HasItems" Value="false">
- <Setter TargetName="DropDownBorder" Property="MinHeight" Value="95"/>
- </Trigger>
- <Trigger Property="IsEnabled" Value="false">
- <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
- </Trigger>
- <Trigger Property="IsGrouping" Value="true">
- <Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
- </Trigger>
- <Trigger SourceName="Popup" Property="Popup.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="EditableTextBox" Property="Visibility" Value="Visible"/>
- <Setter TargetName="Presenter" Property="Visibility" Value="Hidden"/>
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </ComboBox.Template>
- </ComboBox>
- </Border>
- </Grid>
- </UserControl>
|