You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1329 lines
65 KiB
1329 lines
65 KiB
<!--***********************************************************************************
|
|
|
|
Extended WPF Toolkit
|
|
|
|
Copyright (C) 2007-2013 Xceed Software Inc.
|
|
|
|
This program is provided to you under the terms of the Microsoft Public
|
|
License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license
|
|
|
|
For more features, controls, and fast professional support,
|
|
pick up the Plus Edition at http://xceed.com/wpf_toolkit
|
|
|
|
Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids
|
|
|
|
**********************************************************************************-->
|
|
|
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:local="clr-namespace:Xceed.Wpf.Toolkit"
|
|
xmlns:pg="clr-namespace:Xceed.Wpf.Toolkit.PropertyGrid"
|
|
xmlns:conv="clr-namespace:Xceed.Wpf.Toolkit.Core.Converters"
|
|
xmlns:editor="clr-namespace:Xceed.Wpf.Toolkit.PropertyGrid.Editors"
|
|
xmlns:pgconv="clr-namespace:Xceed.Wpf.Toolkit.PropertyGrid.Converters"
|
|
xmlns:utilities="clr-namespace:Xceed.Wpf.Toolkit.Core.Utilities"
|
|
xmlns:commands="clr-namespace:Xceed.Wpf.Toolkit.PropertyGrid.Commands"
|
|
xmlns:sys="clr-namespace:System;assembly=mscorlib">
|
|
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="../../NumericUpDown/Themes/Generic.xaml" />
|
|
<ResourceDictionary Source="../../DateTimeUpDown/Themes/Generic.xaml" />
|
|
<ResourceDictionary Source="../../TimeSpanUpDown/Themes/Generic.xaml" />
|
|
<ResourceDictionary Source="../../WatermarkTextBox/Themes/Generic.xaml" />
|
|
<ResourceDictionary Source="../../ColorPicker/Themes/Generic.xaml" />
|
|
<ResourceDictionary Source="../../CollectionControl/Themes/Generic.xaml" />
|
|
</ResourceDictionary.MergedDictionaries>
|
|
|
|
<!-- =============================================================================== -->
|
|
<!-- PropertyGrid -->
|
|
<!-- =============================================================================== -->
|
|
|
|
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
|
|
<conv:InverseBoolConverter x:Key="InverseBoolConverter" />
|
|
<conv:HalfConverter x:Key="HalfConverter" />
|
|
<pgconv:ObjectToUIElementConverter x:Key="ObjectToUIElementConverter" />
|
|
<pgconv:IsStringEmptyConverter x:Key="IsStringEmptyConverter" />
|
|
<pgconv:ExpandableObjectMarginConverter x:Key="ExpandableObjectMarginConverter" />
|
|
<pgconv:IsDefaultCategoryConverter x:Key="IsDefaultCategoryConverter" />
|
|
|
|
<x:Static x:Key="EmptyString"
|
|
Member="sys:String.Empty" />
|
|
|
|
<!-- PropertyGrid numeric Editors -->
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorByteUpDown}"
|
|
BasedOn="{StaticResource NumericUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorDecimalUpDown}"
|
|
BasedOn="{StaticResource NumericUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorDoubleUpDown}"
|
|
BasedOn="{StaticResource NumericUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorIntegerUpDown}"
|
|
BasedOn="{StaticResource NumericUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorLongUpDown}"
|
|
BasedOn="{StaticResource NumericUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorShortUpDown}"
|
|
BasedOn="{StaticResource NumericUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorSingleUpDown}"
|
|
BasedOn="{StaticResource NumericUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<!-- PropertyGrid DateTime Editors -->
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorDateTimeUpDown}"
|
|
BasedOn="{StaticResource DateTimeUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<!-- PropertyGrid TimeSpan Editors -->
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorTimeSpanUpDown}"
|
|
BasedOn="{StaticResource TimeSpanUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<!-- PropertyGrid ComboBox Editors -->
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorComboBox}"
|
|
BasedOn="{StaticResource {x:Type ComboBox}}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="Background"
|
|
Value="Transparent" />
|
|
</MultiTrigger>
|
|
<Trigger Property="IsEnabled"
|
|
Value="False">
|
|
<Setter Property="Foreground"
|
|
Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<!-- PropertyGrid CheckBox Editors -->
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorCheckBox}"
|
|
BasedOn="{StaticResource {x:Type CheckBox}}">
|
|
<Setter Property="Margin"
|
|
Value="5,0,0,0" />
|
|
</Style>
|
|
|
|
<!-- PropertyGrid TextBox Editors -->
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorTextBox}"
|
|
BasedOn="{StaticResource WatermarkTextBox}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
</MultiTrigger>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsEnabled"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderThickness"
|
|
Value="0" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<!-- PropertyGrid TextBlock Editors -->
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorTextBlock}"
|
|
BasedOn="{StaticResource {x:Type TextBlock}}">
|
|
<Setter Property="Foreground"
|
|
Value="Gray" />
|
|
</Style>
|
|
|
|
<!-- PropertyGrid ColorPicker Editors -->
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorColorPicker}"
|
|
BasedOn="{StaticResource {x:Type local:ColorPicker}}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowDropDownButton"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
|
|
<!-- PropertyGrid PrimitiveTypeCollectionControl Editors -->
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorPrimitiveTypeCollectionControl}"
|
|
BasedOn="{StaticResource PrimitiveTypeCollectionControl}">
|
|
<Setter Property="BorderThickness"
|
|
Value="0" />
|
|
<Setter Property="Content"
|
|
Value="(Collection)" />
|
|
</Style>
|
|
|
|
<!-- PropertyGrid CollectionControl Editors -->
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorCollectionControl}"
|
|
BasedOn="{StaticResource CollectionControlButton}">
|
|
</Style>
|
|
|
|
<!-- =============================================================================== -->
|
|
<!-- Style for all internal derived types of NumericUpDown will be done in code-behind -->
|
|
<!-- for external themes to redefine the default style. The reason is that the -->
|
|
<!-- toolkit.dll uses the InternalsVisibleTo attribute which makes internal data only -->
|
|
<!-- available in code-behind(not xaml). -->
|
|
<!-- (ex. Office2007 theme) -->
|
|
<!-- =============================================================================== -->
|
|
|
|
<!-- Internal PropertyGrid numeric Editors -->
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorSByteUpDown}"
|
|
BasedOn="{StaticResource NumericUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorUIntegerUpDown}"
|
|
BasedOn="{StaticResource NumericUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorULongUpDown}"
|
|
BasedOn="{StaticResource NumericUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type editor:PropertyGridEditorUShortUpDown}"
|
|
BasedOn="{StaticResource NumericUpDown}">
|
|
<Style.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsKeyboardFocusWithin"
|
|
Value="False" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="False" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="ShowButtonSpinner"
|
|
Value="False" />
|
|
</MultiTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
|
|
|
|
<SolidColorBrush x:Key="MouseOverBorderBrush"
|
|
Color="#FFFFB700" />
|
|
<LinearGradientBrush x:Key="MouseOverBackgroundBrush"
|
|
StartPoint="0,0"
|
|
EndPoint="0,1">
|
|
<GradientStop Offset="0"
|
|
Color="#FFFEFBF4" />
|
|
<GradientStop Offset="0.19"
|
|
Color="#FFFDE7CE" />
|
|
<GradientStop Offset="0.39"
|
|
Color="#FFFDDEB8" />
|
|
<GradientStop Offset="0.39"
|
|
Color="#FFFFCE6B" />
|
|
<GradientStop Offset="0.79"
|
|
Color="#FFFFDE9A" />
|
|
<GradientStop Offset="1"
|
|
Color="#FFFFEBAA" />
|
|
</LinearGradientBrush>
|
|
|
|
<SolidColorBrush x:Key="CheckedBorderBrush"
|
|
Color="#FFC29B29" />
|
|
<LinearGradientBrush x:Key="CheckedBackgroundBrush"
|
|
StartPoint="0,0"
|
|
EndPoint="0,1">
|
|
<GradientStop Offset="0"
|
|
Color="#FFFFDCA0" />
|
|
<GradientStop Offset="0.18"
|
|
Color="#FFFFD692" />
|
|
<GradientStop Offset="0.39"
|
|
Color="#FFFFC45D" />
|
|
<GradientStop Offset="1"
|
|
Color="#FFFFD178" />
|
|
</LinearGradientBrush>
|
|
|
|
<SolidColorBrush x:Key="PressedBorderBrush"
|
|
Color="#FFC29B29" />
|
|
<LinearGradientBrush x:Key="PressedBackgroundBrush"
|
|
StartPoint="0,0"
|
|
EndPoint="0,1">
|
|
<GradientStop Offset="0"
|
|
Color="#FFE3C085" />
|
|
<GradientStop Offset="0.19"
|
|
Color="#FFF4CC89" />
|
|
<GradientStop Offset="0.36"
|
|
Color="#FFF5C777" />
|
|
<GradientStop Offset="0.36"
|
|
Color="#FFF5BB56" />
|
|
<GradientStop Offset="0.79"
|
|
Color="#FFF4CE9A" />
|
|
<GradientStop Offset="1"
|
|
Color="#FFF3E28D" />
|
|
</LinearGradientBrush>
|
|
|
|
<Style x:Key="OptionsToggleButtonStyle"
|
|
TargetType="{x:Type RadioButton}">
|
|
<Setter Property="Background"
|
|
Value="Transparent" />
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="BorderThickness"
|
|
Value="1" />
|
|
<Setter Property="FocusVisualStyle"
|
|
Value="{x:Null}" />
|
|
<Setter Property="Height"
|
|
Value="22" />
|
|
<Setter Property="HorizontalContentAlignment"
|
|
Value="Center" />
|
|
<Setter Property="ToolTipService.InitialShowDelay"
|
|
Value="900" />
|
|
<Setter Property="ToolTipService.ShowDuration"
|
|
Value="20000" />
|
|
<Setter Property="ToolTipService.BetweenShowDelay"
|
|
Value="0" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type RadioButton}">
|
|
<Grid SnapsToDevicePixels="True">
|
|
<Border x:Name="OuterBorder"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
Background="{TemplateBinding Background}"
|
|
CornerRadius="2" />
|
|
<Border x:Name="MiddleBorder"
|
|
BorderBrush="Transparent"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
Background="Transparent"
|
|
CornerRadius="2">
|
|
<Border x:Name="InnerBorder"
|
|
BorderBrush="Transparent"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
Background="Transparent"
|
|
CornerRadius="2"
|
|
Padding="{TemplateBinding Padding}">
|
|
<StackPanel x:Name="StackPanel"
|
|
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}">
|
|
<ContentPresenter x:Name="Content"
|
|
Content="{TemplateBinding Content}"
|
|
Margin="1"
|
|
RenderOptions.BitmapScalingMode="NearestNeighbor"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" />
|
|
</StackPanel>
|
|
</Border>
|
|
</Border>
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsMouseOver"
|
|
Value="True">
|
|
<Setter Property="Background"
|
|
TargetName="OuterBorder"
|
|
Value="{StaticResource MouseOverBackgroundBrush}" />
|
|
<Setter Property="BorderBrush"
|
|
TargetName="OuterBorder"
|
|
Value="{StaticResource MouseOverBorderBrush}" />
|
|
<Setter Property="BorderBrush"
|
|
TargetName="InnerBorder"
|
|
Value="#80FFFFFF" />
|
|
</Trigger>
|
|
|
|
<Trigger Property="IsEnabled"
|
|
Value="False">
|
|
<Setter Property="Opacity"
|
|
TargetName="Content"
|
|
Value="0.5" />
|
|
<Setter Property="TextElement.Foreground"
|
|
TargetName="OuterBorder"
|
|
Value="#FF9E9E9E" />
|
|
</Trigger>
|
|
|
|
<Trigger Property="IsChecked"
|
|
Value="True">
|
|
<Setter Property="Background"
|
|
TargetName="OuterBorder"
|
|
Value="{StaticResource CheckedBackgroundBrush}" />
|
|
<Setter Property="BorderBrush"
|
|
TargetName="OuterBorder"
|
|
Value="{StaticResource CheckedBorderBrush}" />
|
|
<Setter Property="BorderBrush"
|
|
TargetName="InnerBorder">
|
|
<Setter.Value>
|
|
<LinearGradientBrush EndPoint="0,1"
|
|
StartPoint="0,0">
|
|
<GradientStop Color="#FFE7CBAD"
|
|
Offset="0" />
|
|
<GradientStop Color="#FFF7D7B5"
|
|
Offset="0.1" />
|
|
<GradientStop Color="#FFFFD38C"
|
|
Offset="0.36" />
|
|
<GradientStop Color="#FFFFC75A"
|
|
Offset="0.36" />
|
|
<GradientStop Color="#FFFFEFA5"
|
|
Offset="1" />
|
|
</LinearGradientBrush>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Trigger>
|
|
|
|
<Trigger Property="IsPressed"
|
|
Value="True">
|
|
<Setter Property="Background"
|
|
TargetName="OuterBorder"
|
|
Value="{StaticResource PressedBackgroundBrush}" />
|
|
<Setter Property="BorderBrush"
|
|
TargetName="OuterBorder"
|
|
Value="{StaticResource PressedBorderBrush}" />
|
|
<Setter Property="BorderBrush"
|
|
TargetName="InnerBorder"
|
|
Value="Transparent" />
|
|
</Trigger>
|
|
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsChecked"
|
|
Value="True" />
|
|
<Condition Property="IsMouseOver"
|
|
Value="True" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter Property="Background"
|
|
TargetName="MiddleBorder">
|
|
<Setter.Value>
|
|
<LinearGradientBrush EndPoint="0,1"
|
|
StartPoint="0,0">
|
|
<GradientStop Color="#40FFFEFE"
|
|
Offset="0" />
|
|
<GradientStop Color="#40FFFEFE"
|
|
Offset="0.39" />
|
|
<GradientStop Color="#20FFCE68"
|
|
Offset="0.39" />
|
|
<GradientStop Color="#20FFCE68"
|
|
Offset="0.69" />
|
|
<GradientStop Color="#10FFFFFF"
|
|
Offset="1" />
|
|
</LinearGradientBrush>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</MultiTrigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style x:Key="ClearFilterButtonStyle"
|
|
TargetType="{x:Type Button}">
|
|
<Setter Property="Background"
|
|
Value="Transparent" />
|
|
<Setter Property="BorderBrush"
|
|
Value="Transparent" />
|
|
<Setter Property="BorderThickness"
|
|
Value="1" />
|
|
<Setter Property="Height"
|
|
Value="22" />
|
|
<Setter Property="HorizontalContentAlignment"
|
|
Value="Center" />
|
|
<Setter Property="ToolTipService.InitialShowDelay"
|
|
Value="900" />
|
|
<Setter Property="ToolTipService.ShowDuration"
|
|
Value="20000" />
|
|
<Setter Property="ToolTipService.BetweenShowDelay"
|
|
Value="0" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type Button}">
|
|
<Grid SnapsToDevicePixels="True">
|
|
<Border x:Name="OuterBorder"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
Background="{TemplateBinding Background}"
|
|
CornerRadius="2" />
|
|
<Border x:Name="MiddleBorder"
|
|
BorderBrush="Transparent"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
Background="Transparent"
|
|
CornerRadius="2">
|
|
<Border x:Name="InnerBorder"
|
|
BorderBrush="Transparent"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
Background="Transparent"
|
|
CornerRadius="2"
|
|
Padding="{TemplateBinding Padding}">
|
|
<StackPanel x:Name="StackPanel"
|
|
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}">
|
|
<ContentPresenter x:Name="Content"
|
|
Content="{TemplateBinding Content}"
|
|
Margin="1"
|
|
RenderOptions.BitmapScalingMode="NearestNeighbor"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" />
|
|
</StackPanel>
|
|
</Border>
|
|
</Border>
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsMouseOver"
|
|
Value="True">
|
|
<Setter Property="Background"
|
|
TargetName="OuterBorder"
|
|
Value="{StaticResource MouseOverBackgroundBrush}" />
|
|
<Setter Property="BorderBrush"
|
|
TargetName="OuterBorder"
|
|
Value="{StaticResource MouseOverBorderBrush}" />
|
|
<Setter Property="BorderBrush"
|
|
TargetName="InnerBorder"
|
|
Value="#80FFFFFF" />
|
|
</Trigger>
|
|
|
|
<Trigger Property="IsEnabled"
|
|
Value="False">
|
|
<Setter Property="Opacity"
|
|
TargetName="Content"
|
|
Value="0.5" />
|
|
<Setter Property="TextElement.Foreground"
|
|
TargetName="OuterBorder"
|
|
Value="#FF9E9E9E" />
|
|
</Trigger>
|
|
|
|
<Trigger Property="IsPressed"
|
|
Value="True">
|
|
<Setter Property="Background"
|
|
TargetName="OuterBorder"
|
|
Value="{StaticResource PressedBackgroundBrush}" />
|
|
<Setter Property="BorderBrush"
|
|
TargetName="OuterBorder"
|
|
Value="{StaticResource PressedBorderBrush}" />
|
|
<Setter Property="BorderBrush"
|
|
TargetName="InnerBorder"
|
|
Value="Transparent" />
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<SolidColorBrush x:Key="GlyphBrush"
|
|
Color="#FF31347C" />
|
|
|
|
<ControlTemplate x:Key="ExpanderToggleButton"
|
|
TargetType="{x:Type ToggleButton}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="20" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Rectangle Margin="0,0,0,0"
|
|
x:Name="Rectangle"
|
|
Fill="Transparent" />
|
|
<Path HorizontalAlignment="Center"
|
|
x:Name="Up_Arrow"
|
|
VerticalAlignment="Center"
|
|
Fill="{StaticResource GlyphBrush}"
|
|
Data="M 0 0 L 4 4 L 8 0 Z"
|
|
RenderTransformOrigin="0.5,0.5">
|
|
<Path.RenderTransform>
|
|
<TransformGroup>
|
|
<ScaleTransform ScaleX="1"
|
|
ScaleY="1" />
|
|
<SkewTransform AngleX="0"
|
|
AngleY="0" />
|
|
<RotateTransform Angle="-90" />
|
|
<TranslateTransform X="0"
|
|
Y="0" />
|
|
</TransformGroup>
|
|
</Path.RenderTransform>
|
|
</Path>
|
|
<Path Visibility="Collapsed"
|
|
HorizontalAlignment="Center"
|
|
x:Name="Down_Arrow"
|
|
VerticalAlignment="Center"
|
|
Fill="{StaticResource GlyphBrush}"
|
|
Data="M 0 4 L 4 0 L 8 4 Z"
|
|
RenderTransformOrigin="0.5,0.5">
|
|
<Path.RenderTransform>
|
|
<TransformGroup>
|
|
<ScaleTransform ScaleX="1"
|
|
ScaleY="1" />
|
|
<SkewTransform AngleX="0"
|
|
AngleY="0" />
|
|
<RotateTransform Angle="135" />
|
|
<TranslateTransform X="0"
|
|
Y="0" />
|
|
</TransformGroup>
|
|
</Path.RenderTransform>
|
|
</Path>
|
|
|
|
<ContentPresenter Grid.Column="1" />
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsChecked"
|
|
Value="true">
|
|
<Setter Property="Visibility"
|
|
Value="Visible"
|
|
TargetName="Down_Arrow" />
|
|
<Setter Property="Visibility"
|
|
Value="Collapsed"
|
|
TargetName="Up_Arrow" />
|
|
<Setter Property="OpacityMask"
|
|
TargetName="Down_Arrow"
|
|
Value="#FF000000" />
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
|
|
<Style x:Key="ExpanderStyle"
|
|
TargetType="{x:Type Expander}">
|
|
<Setter Property="Padding"
|
|
Value="0" />
|
|
<Setter Property="Background"
|
|
Value="#FFF0F0F0" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type Expander}">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*"
|
|
x:Name="ContentRow" />
|
|
</Grid.RowDefinitions>
|
|
<Border x:Name="Border"
|
|
Background="{TemplateBinding Background}"
|
|
BorderBrush="#FFF0F0F0">
|
|
<ToggleButton Template="{StaticResource ExpanderToggleButton}"
|
|
IsChecked="{Binding Path=IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
|
|
OverridesDefaultStyle="True">
|
|
<ContentPresenter Margin="1"
|
|
RecognizesAccessKey="True"
|
|
ContentSource="Header"
|
|
TextElement.FontWeight="Bold" />
|
|
</ToggleButton>
|
|
</Border>
|
|
<Border Visibility="Collapsed"
|
|
Grid.Row="1"
|
|
x:Name="ExpandSite"
|
|
Background="{x:Static SystemColors.ControlBrush}"
|
|
Padding="10 0 0 0">
|
|
<Border BorderThickness="0"
|
|
Margin="0"
|
|
Padding="0"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalAlignment="Stretch">
|
|
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
Margin="{TemplateBinding Padding}"
|
|
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
|
Focusable="False" />
|
|
</Border>
|
|
</Border>
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsExpanded"
|
|
Value="True">
|
|
<Setter Property="Visibility"
|
|
Value="Visible"
|
|
TargetName="ExpandSite" />
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style x:Key="PropertyExpanderStyle"
|
|
TargetType="{x:Type Expander}">
|
|
<Setter Property="Padding"
|
|
Value="10 0 0 0" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type Expander}">
|
|
<Grid>
|
|
<Border Visibility="Collapsed"
|
|
Grid.Row="1"
|
|
x:Name="ExpandSite"
|
|
Padding="0 0 0 0">
|
|
<Border BorderThickness="0"
|
|
Margin="0"
|
|
Padding="0"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalAlignment="Stretch">
|
|
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
|
Focusable="False" />
|
|
</Border>
|
|
</Border>
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsExpanded"
|
|
Value="True">
|
|
<Setter Property="Visibility"
|
|
Value="Visible"
|
|
TargetName="ExpandSite" />
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style x:Key="PropertyItemGroupContainerStyle"
|
|
TargetType="{x:Type GroupItem}">
|
|
<Style.Resources>
|
|
</Style.Resources>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate>
|
|
<Border>
|
|
<Expander x:Name="expander"
|
|
Header="{Binding Name}"
|
|
Style="{StaticResource ExpanderStyle}"
|
|
IsExpanded="True">
|
|
<ItemsPresenter />
|
|
</Expander>
|
|
</Border>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
<Style.Triggers>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding Name, Converter={StaticResource IsDefaultCategoryConverter}}"
|
|
Value="True" />
|
|
<Condition Binding="{Binding IsMiscCategoryLabelHidden, RelativeSource={RelativeSource AncestorType={x:Type pg:PropertyGrid}}}"
|
|
Value="True" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type GroupItem}">
|
|
<!-- No Expander for the Misc Category -->
|
|
<ItemsPresenter />
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</MultiDataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<ContextMenu x:Key="{ComponentResourceKey
|
|
TypeInTargetAssembly={x:Type pg:PropertyGrid},
|
|
ResourceId=SelectedObjectAdvancedOptionsMenu}">
|
|
<MenuItem Header="Reset Value"
|
|
Command="commands:PropertyItemCommands.ResetValue" />
|
|
</ContextMenu>
|
|
|
|
<Style TargetType="{x:Type pg:PropertyItemBase}">
|
|
|
|
<Setter Property="Background"
|
|
Value="{x:Static SystemColors.WindowBrush}" />
|
|
<!-- Set the margin at 1 pixel bottom to let the horizontal "line" effect appear. -->
|
|
<Setter Property="Margin"
|
|
Value="0,0,0,1" />
|
|
<Setter Property="VerticalContentAlignment"
|
|
Value="Center" />
|
|
<Setter Property="SnapsToDevicePixels"
|
|
Value="True" />
|
|
<Setter Property="IsTabStop"
|
|
Value="False" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type pg:PropertyItemBase}">
|
|
<Border ContextMenu="{Binding AdvancedOptionsMenu, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=pg:PropertyGrid}}"
|
|
ContextMenuService.Placement="Bottom">
|
|
<Grid VerticalAlignment="Stretch"
|
|
HorizontalAlignment="Stretch">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="{Binding NameColumnWidth, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type pg:PropertyGrid}}}" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- Set the BorderThickness at 1 pixel to the right to let the "vertical line" appear -->
|
|
<Border x:Name="PART_Name"
|
|
Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
Margin="0,0,1,0"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalAlignment="Stretch">
|
|
<Grid Margin="2,2,2,2"
|
|
VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<Grid Margin="{Binding Level, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ExpandableObjectMarginConverter}}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="15" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<ToggleButton x:Name="_expandableButton"
|
|
Grid.Column="0"
|
|
Template="{StaticResource ExpanderToggleButton}"
|
|
OverridesDefaultStyle="True"
|
|
IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}"
|
|
Visibility="{Binding IsExpandable, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BooleanToVisibilityConverter}}" />
|
|
|
|
<pg:TrimmedTextBlock x:Name="_text"
|
|
Grid.Column="1"
|
|
Text="{Binding DisplayName, RelativeSource={RelativeSource TemplatedParent}}"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Center"
|
|
TextTrimming="CharacterEllipsis"
|
|
IsEnabled="{Binding IsReadOnly, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=pg:PropertyGrid}, Converter={StaticResource InverseBoolConverter}}" />
|
|
</Grid>
|
|
|
|
<Grid Grid.Column="1"
|
|
HorizontalAlignment="Right"
|
|
Margin="5,0,5,0"
|
|
Visibility="{Binding ShowAdvancedOptions, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=pg:PropertyGrid}, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
utilities:ContextMenuUtilities.OpenOnMouseLeftButtonClick="True"
|
|
ContextMenu="{Binding AdvancedOptionsMenu, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=pg:PropertyGrid}}">
|
|
|
|
<Image x:Name="_optionsImage"
|
|
Width="11"
|
|
Height="11"
|
|
ToolTip="{Binding AdvancedOptionsTooltip, RelativeSource={RelativeSource TemplatedParent}}" />
|
|
</Grid>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<Border x:Name="PART_Editor"
|
|
Grid.Column="1"
|
|
Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
KeyboardNavigation.DirectionalNavigation="None"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalAlignment="Stretch">
|
|
<Border.ToolTip>
|
|
<ToolTip Visibility="Collapsed" />
|
|
</Border.ToolTip >
|
|
<ContentControl x:Name="PART_ValueContainer"
|
|
Content="{TemplateBinding Editor}"
|
|
Focusable="False"
|
|
IsTabStop="False"
|
|
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
|
IsEnabled="{Binding IsReadOnly, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=pg:PropertyGrid}, Converter={StaticResource InverseBoolConverter}}">
|
|
</ContentControl>
|
|
</Border>
|
|
|
|
<Expander x:Name="_propertyExpander"
|
|
Grid.ColumnSpan="2"
|
|
Grid.Row="1"
|
|
IsExpanded="{TemplateBinding IsExpanded}"
|
|
Style="{StaticResource PropertyExpanderStyle}"
|
|
IsEnabled="True">
|
|
<pg:PropertyItemsControl x:Name="PART_PropertyItemsControl"
|
|
IsTabStop="False"
|
|
Focusable="False"
|
|
ItemsSource="{Binding Properties, RelativeSource={RelativeSource TemplatedParent}}"
|
|
ItemContainerStyle="{Binding PropertyContainerStyle, RelativeSource={RelativeSource TemplatedParent}}">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<VirtualizingStackPanel />
|
|
</ItemsPanelTemplate>
|
|
</ItemsControl.ItemsPanel>
|
|
|
|
<ItemsControl.GroupStyle>
|
|
<GroupStyle ContainerStyle="{StaticResource PropertyItemGroupContainerStyle}" />
|
|
</ItemsControl.GroupStyle>
|
|
|
|
</pg:PropertyItemsControl>
|
|
</Expander>
|
|
</Grid>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsMouseOver"
|
|
Value="True">
|
|
<Setter TargetName="PART_Name"
|
|
Property="Background"
|
|
Value="#CED4DF" />
|
|
</Trigger>
|
|
<Trigger Property="IsSelected"
|
|
Value="True">
|
|
<Setter TargetName="PART_Name"
|
|
Property="Background"
|
|
Value="#43577B" />
|
|
<Setter TargetName="PART_Name"
|
|
Property="TextElement.Foreground"
|
|
Value="White" />
|
|
</Trigger>
|
|
<Trigger Property="IsEnabled"
|
|
Value="False">
|
|
<Setter Property="Foreground"
|
|
TargetName="PART_ValueContainer"
|
|
Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
|
|
<Setter Property="Foreground"
|
|
TargetName="_text"
|
|
Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
|
|
</Trigger>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding ShowDescriptionByTooltip, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=pg:PropertyGrid}}"
|
|
Value="True" />
|
|
<Condition Binding="{Binding Description, RelativeSource={RelativeSource Self}, Converter={StaticResource IsStringEmptyConverter}}"
|
|
Value="False" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="ToolTipService.ToolTip"
|
|
Value="{Binding Description, RelativeSource={RelativeSource TemplatedParent}}"
|
|
TargetName="PART_Name" />
|
|
</MultiDataTrigger>
|
|
<Trigger Property="Validation.HasError"
|
|
Value="true">
|
|
<Setter Property="ToolTip"
|
|
Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors).CurrentItem.ErrorContent}" />
|
|
</Trigger>
|
|
<Trigger Property="Visibility"
|
|
Value="Visible"
|
|
SourceName="_expandableButton">
|
|
<Setter Property="Focusable"
|
|
Value="False" />
|
|
</Trigger>
|
|
|
|
<DataTrigger Binding="{Binding ElementName=_optionsImage, Path=ToolTip}"
|
|
Value="{x:Static pg:StringConstants.Local}">
|
|
<Setter TargetName="_optionsImage"
|
|
Property="Source"
|
|
Value="../Images/Local11.png" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding ElementName=_optionsImage, Path=ToolTip}"
|
|
Value="{x:Static pg:StringConstants.Resource}">
|
|
<Setter TargetName="_optionsImage"
|
|
Property="Source"
|
|
Value="../Images/Resource11.png" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding ElementName=_optionsImage, Path=ToolTip}"
|
|
Value="{x:Static pg:StringConstants.Databinding}">
|
|
<Setter TargetName="_optionsImage"
|
|
Property="Source"
|
|
Value="../Images/Database11.png" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding ElementName=_optionsImage, Path=ToolTip}"
|
|
Value="{x:Static pg:StringConstants.Inheritance}">
|
|
<Setter TargetName="_optionsImage"
|
|
Property="Source"
|
|
Value="../Images/Inheritance11.png" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding ElementName=_optionsImage, Path=ToolTip}"
|
|
Value="{x:Static pg:StringConstants.StyleSetter}">
|
|
<Setter TargetName="_optionsImage"
|
|
Property="Source"
|
|
Value="../Images/Style11.png" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding ElementName=_optionsImage, Path=ToolTip}"
|
|
Value="{x:Static pg:StringConstants.AdvancedProperties}">
|
|
<Setter TargetName="_optionsImage"
|
|
Property="Source"
|
|
Value="../Images/AdvancedProperties11.png" />
|
|
</DataTrigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style TargetType="{x:Type pg:PropertyGrid}">
|
|
<Style.Resources>
|
|
<pgconv:SelectedObjectConverter x:Key="objectConverter" />
|
|
</Style.Resources>
|
|
<Setter Property="AdvancedOptionsMenu"
|
|
Value="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type pg:PropertyGrid}, ResourceId=SelectedObjectAdvancedOptionsMenu}}" />
|
|
<Setter Property="Background"
|
|
Value="#BCC7D8" />
|
|
<Setter Property="BorderBrush"
|
|
Value="#43577B" />
|
|
<Setter Property="BorderThickness"
|
|
Value="1" />
|
|
<Setter Property="SelectedObjectType"
|
|
Value="{Binding RelativeSource={RelativeSource Self}, Path=SelectedObject, Converter={StaticResource objectConverter}, ConverterParameter=Type}" />
|
|
<Setter Property="SelectedObjectTypeName"
|
|
Value="{Binding RelativeSource={RelativeSource Self}, Path=SelectedObject, Converter={StaticResource objectConverter}, ConverterParameter=TypeName}" />
|
|
<Setter Property="SelectedObjectName"
|
|
Value="{Binding RelativeSource={RelativeSource Self}, Path=SelectedObject, Converter={StaticResource objectConverter}, ConverterParameter=SelectedObjectName}" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type pg:PropertyGrid}">
|
|
<Border Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}">
|
|
<Grid Margin="{TemplateBinding Padding}">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition />
|
|
<RowDefinition Height="5" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<StackPanel Orientation="Horizontal">
|
|
<Border Background="White"
|
|
BorderBrush="Black"
|
|
Visibility="{Binding ShowPreview, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
BorderThickness="1"
|
|
Width="44"
|
|
Height="44"
|
|
Margin="6,4,0,4"
|
|
Padding="2">
|
|
<Rectangle>
|
|
<Rectangle.Fill>
|
|
<VisualBrush Stretch="Uniform"
|
|
Visual="{Binding RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ObjectToUIElementConverter}, Path=SelectedObject}" />
|
|
</Rectangle.Fill>
|
|
</Rectangle>
|
|
</Border>
|
|
<StackPanel Orientation="Horizontal"
|
|
VerticalAlignment="Center"
|
|
Margin="6,2,6,4"
|
|
Visibility="{Binding ShowTitle, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BooleanToVisibilityConverter}}">
|
|
<Grid MaxWidth="{Binding ActualWidth, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource HalfConverter}, ConverterParameter=17}">
|
|
<pg:TrimmedTextBlock Text="{TemplateBinding SelectedObjectTypeName}"
|
|
TextTrimming="CharacterEllipsis"
|
|
FontWeight="Bold" />
|
|
</Grid>
|
|
<Grid MaxWidth="{Binding ActualWidth, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource HalfConverter}, ConverterParameter=17}"
|
|
Margin="5,0,0,0">
|
|
<pg:TrimmedTextBlock Text="{TemplateBinding SelectedObjectName}"
|
|
TextTrimming="CharacterEllipsis" />
|
|
</Grid>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
|
|
<Grid x:Name="toolsContainer"
|
|
Grid.Row="1"
|
|
Margin="4,0,4,4">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid x:Name="sortButtonContainer"
|
|
Margin="4"
|
|
Visibility="{Binding ShowSortOptions, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BooleanToVisibilityConverter}}">
|
|
<StackPanel Orientation="Horizontal"
|
|
Margin="1">
|
|
<RadioButton IsChecked="{Binding IsCategorized, RelativeSource={RelativeSource TemplatedParent}}"
|
|
VerticalAlignment="Center"
|
|
Style="{StaticResource OptionsToggleButtonStyle}"
|
|
ToolTip="Categorized">
|
|
<Image Source="./../Images/Categorize16.png"
|
|
Width="16"
|
|
Height="16" />
|
|
</RadioButton>
|
|
<RadioButton IsChecked="{Binding IsCategorized, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolConverter}, Mode=OneWay}"
|
|
VerticalAlignment="Center"
|
|
Style="{StaticResource OptionsToggleButtonStyle}"
|
|
ToolTip="Alphabetical">
|
|
<Image Source="./../Images/SortAscending16.png"
|
|
Width="16"
|
|
Height="16" />
|
|
</RadioButton>
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<Border x:Name="searchBoxContainer"
|
|
Grid.Column="1"
|
|
Margin="4,4,0,4"
|
|
Background="White"
|
|
BorderBrush="Gray"
|
|
BorderThickness="1"
|
|
Visibility="{Binding ShowSearchBox, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BooleanToVisibilityConverter}}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<local:WatermarkTextBox x:Name="_txtFilter"
|
|
Background="Transparent"
|
|
Text="{Binding Filter, RelativeSource={RelativeSource TemplatedParent}, UpdateSourceTrigger=PropertyChanged}"
|
|
Watermark="{TemplateBinding FilterWatermark}">
|
|
<local:WatermarkTextBox.Style>
|
|
<Style TargetType="Control">
|
|
<Setter Property="BorderThickness"
|
|
Value="0" />
|
|
<Style.Triggers>
|
|
<Trigger Property="IsMouseOver"
|
|
Value="True">
|
|
<Setter Property="BorderThickness"
|
|
Value="1" />
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</local:WatermarkTextBox.Style>
|
|
|
|
</local:WatermarkTextBox>
|
|
|
|
<Button Grid.Column="1"
|
|
Command="commands:PropertyGridCommands.ClearFilter"
|
|
Style="{StaticResource ClearFilterButtonStyle}"
|
|
HorizontalAlignment="Left">
|
|
<Image Source="./../Images/ClearFilter16.png"
|
|
Width="16"
|
|
Height="16" />
|
|
</Button>
|
|
</Grid>
|
|
</Border>
|
|
</Grid>
|
|
|
|
<Grid Grid.Row="2"
|
|
Background="{x:Static SystemColors.WindowBrush}">
|
|
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
|
<pg:PropertyItemsControl x:Name="PART_PropertyItemsControl"
|
|
IsTabStop="False"
|
|
Focusable="False"
|
|
ItemsSource="{Binding Properties, RelativeSource={RelativeSource TemplatedParent}}"
|
|
ItemContainerStyle="{Binding PropertyContainerStyle, RelativeSource={RelativeSource TemplatedParent}}"
|
|
Background="{x:Static SystemColors.ControlBrush}"
|
|
VerticalAlignment="Top">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<VirtualizingStackPanel />
|
|
</ItemsPanelTemplate>
|
|
</ItemsControl.ItemsPanel>
|
|
|
|
<ItemsControl.GroupStyle>
|
|
<GroupStyle ContainerStyle="{StaticResource PropertyItemGroupContainerStyle}" />
|
|
</ItemsControl.GroupStyle>
|
|
|
|
</pg:PropertyItemsControl>
|
|
</ScrollViewer>
|
|
|
|
<Thumb x:Name="PART_DragThumb"
|
|
HorizontalAlignment="Left"
|
|
Width="5"
|
|
Margin="6,0,0,0"
|
|
Cursor="SizeWE">
|
|
<Thumb.Template>
|
|
<ControlTemplate>
|
|
<Border Background="Transparent" />
|
|
</ControlTemplate>
|
|
</Thumb.Template>
|
|
</Thumb>
|
|
|
|
</Grid>
|
|
|
|
<GridSplitter Height="3"
|
|
Grid.Row="3"
|
|
HorizontalAlignment="Stretch"
|
|
Visibility="{Binding ShowSummary, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BooleanToVisibilityConverter}}" />
|
|
<StackPanel Grid.Row="4"
|
|
Margin="0,0,0,5"
|
|
Visibility="{Binding ShowSummary, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BooleanToVisibilityConverter}}">
|
|
<TextBlock Padding="2 2 2 0"
|
|
FontWeight="Bold"
|
|
Text="{Binding SelectedPropertyItem.DisplayName, RelativeSource={RelativeSource TemplatedParent}}" />
|
|
<TextBlock Padding="5 2 2 0"
|
|
TextWrapping="WrapWithOverflow"
|
|
Text="{Binding SelectedPropertyItem.Description, RelativeSource={RelativeSource TemplatedParent}}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition SourceName="searchBoxContainer"
|
|
Property="Visibility"
|
|
Value="Collapsed" />
|
|
<Condition SourceName="sortButtonContainer"
|
|
Property="Visibility"
|
|
Value="Collapsed" />
|
|
</MultiTrigger.Conditions>
|
|
<Setter TargetName="toolsContainer"
|
|
Property="Visibility"
|
|
Value="Collapsed" />
|
|
</MultiTrigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
</ResourceDictionary>
|
|
|