Browse Source

Bugfixes for Image Placement, Formated Text, ...

pull/584/head
jkuehner 11 years ago
parent
commit
b33f8cf0da
  1. 12
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/AdornerLayer.cs
  2. 4
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ResizeThumb.cs
  3. 101
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/BorderForImageControl.cs
  4. 9
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/CanvasPlacementSupport.cs
  5. 10
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/DefaultPlacementBehavior.cs
  6. 8
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/GridPlacementSupport.cs
  7. 2
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/MarginHandleExtension.cs
  8. 4
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SnaplinePlacementBehavior.cs
  9. 2
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/TextBlockRightClickContextMenu.xaml.cs
  10. BIN
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Images/edit-underline.png
  11. BIN
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Images/paint-can-color.png
  12. 4
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs
  13. 826
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/FormatedTextEditor/FormatedTextEditor.xaml
  14. 17
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/FormatedTextEditor/FormatedTextEditor.xaml.cs
  15. 7
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj
  16. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Adorners/AdornerPanel.cs
  17. 14
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PlacementOperation.cs

12
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/AdornerLayer.cs

@ -229,13 +229,13 @@ namespace ICSharpCode.WpfDesign.Designer.Controls @@ -229,13 +229,13 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
//Fix Adorner Display of Image (or maybe other components...)
var size = adorner.DesiredSize;
if (size.Height==0 && size.Width==0 && adorner.AdornedElement is FrameworkElement)
size = new Size(((FrameworkElement)adorner.AdornedElement).Width, ((FrameworkElement)adorner.AdornedElement).Height);
//if (size.Height==0 && size.Width==0 && adorner.AdornedElement is FrameworkElement)
// size = new Size(((FrameworkElement)adorner.AdornedElement).Width, ((FrameworkElement)adorner.AdornedElement).Height);
if (double.IsNaN(size.Width))
size.Width = 0;
if (double.IsNaN(size.Height))
size.Height = 0;
//if (double.IsNaN(size.Width))
// size.Width = 0;
//if (double.IsNaN(size.Height))
// size.Height = 0;
adorner.Arrange(new Rect(new Point(0, 0), size));
}

4
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ResizeThumb.cs

@ -90,9 +90,9 @@ namespace ICSharpCode.WpfDesign.Designer.Controls @@ -90,9 +90,9 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
AdornerPanel parent = this.Parent as AdornerPanel;
if (parent != null && parent.AdornedElement != null) {
if (checkWidth)
this.ResizeThumbVisible = parent.AdornedElement.RenderSize.Width > 14;
this.ResizeThumbVisible = PlacementOperation.GetRealElementSize(parent.AdornedElement).Width > 14;
else if (checkHeight)
this.ResizeThumbVisible = parent.AdornedElement.RenderSize.Height > 14;
this.ResizeThumbVisible = PlacementOperation.GetRealElementSize(parent.AdornedElement).Height > 14;
}
return base.ArrangeOverride(arrangeBounds);
}

101
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/BorderForImageControl.cs

@ -0,0 +1,101 @@ @@ -0,0 +1,101 @@
// Copyright (c) 2014 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Designer.Controls;
using ICSharpCode.WpfDesign.Extensions;
namespace ICSharpCode.WpfDesign.Designer.Extensions
{
[ExtensionFor(typeof(Image))]
public class BorderForImageControl : PermanentAdornerProvider
{
AdornerPanel adornerPanel;
AdornerPanel cachedAdornerPanel;
protected override void OnInitialized()
{
base.OnInitialized();
UpdateAdorner();
}
void UpdateAdorner()
{
var element = ExtendedItem.Component as UIElement;
if (element != null) {
//if (element.IsVisible) {
CreateAdorner();
//}
//else {
// RemoveAdorner();
//}
}
}
private void CreateAdorner()
{
if (adornerPanel == null) {
if (cachedAdornerPanel == null) {
cachedAdornerPanel = new AdornerPanel();
cachedAdornerPanel.Order = AdornerOrder.Background;
var border = new Border();
border.BorderThickness = new Thickness(1);
border.BorderBrush = new SolidColorBrush(Color.FromRgb(0xCC, 0xCC, 0xCC));
border.Background = Brushes.Transparent;
border.IsHitTestVisible = true;
border.MouseDown += border_MouseDown;
AdornerPanel.SetPlacement(border, AdornerPlacement.FillContent);
cachedAdornerPanel.Children.Add(border);
}
adornerPanel = cachedAdornerPanel;
Adorners.Add(adornerPanel);
}
}
void border_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (!Keyboard.IsKeyDown(Key.LeftAlt) && ((Image) this.ExtendedItem.View).Source == null)
{
e.Handled = true;
this.ExtendedItem.Services.Selection.SetSelectedComponents(new DesignItem[] {this.ExtendedItem},
SelectionTypes.Auto);
}
}
private void RemoveAdorner()
{
if (adornerPanel != null) {
Adorners.Remove(adornerPanel);
adornerPanel = null;
}
}
}
}

9
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/CanvasPlacementSupport.cs

@ -70,23 +70,20 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -70,23 +70,20 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
if (IsPropertySet(child, Canvas.LeftProperty) || !IsPropertySet(child, Canvas.RightProperty)) {
x = GetCanvasProperty(child, Canvas.LeftProperty);
} else {
x = extendedComponent.ActualWidth - GetCanvasProperty(child, Canvas.RightProperty) - child.RenderSize.Width;
x = extendedComponent.ActualWidth - GetCanvasProperty(child, Canvas.RightProperty) - PlacementOperation.GetRealElementSize(child).Width;
}
if (IsPropertySet(child, Canvas.TopProperty) || !IsPropertySet(child, Canvas.BottomProperty)) {
y = GetCanvasProperty(child, Canvas.TopProperty);
} else {
y = extendedComponent.ActualHeight - GetCanvasProperty(child, Canvas.BottomProperty) - child.RenderSize.Height;
y = extendedComponent.ActualHeight - GetCanvasProperty(child, Canvas.BottomProperty) - PlacementOperation.GetRealElementSize(child).Height;
}
var p = new Point(x, y);
//Fixes, Empty Image Resized to 0
//return new Rect(p, child.RenderSize);
var size = item.View.RenderSize;
if (item.View is FrameworkElement)
size = new Size(((FrameworkElement)item.View).Width, ((FrameworkElement)item.View).Height);
return new Rect(p, size);
return new Rect(p, PlacementOperation.GetRealElementSize(item.View));
}
public override void SetPosition(PlacementInformation info)

10
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/DefaultPlacementBehavior.cs

@ -89,10 +89,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -89,10 +89,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
var p = item.View.TranslatePoint(new Point(), operation.CurrentContainer.View);
//Fixes, Empty Image Resized to 0
//return new Rect(p, item.View.RenderSize);
var size = item.View.RenderSize;
if (item.View is FrameworkElement)
size = new Size(((FrameworkElement) item.View).Width, ((FrameworkElement) item.View).Height);
return new Rect(p, size);
return new Rect(p, PlacementOperation.GetRealElementSize(item.View));
}
public virtual void BeforeSetPosition(PlacementOperation operation)
@ -101,6 +99,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -101,6 +99,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
public virtual void SetPosition(PlacementInformation info)
{
if (info.Operation.Type != PlacementType.Move)
ModelTools.Resize(info.Item, info.Bounds.Width, info.Bounds.Height);
}
@ -164,6 +163,9 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -164,6 +163,9 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
}
}
if (ExtendedItem.ContentProperty.ReturnType == typeof(string))
return false;
if (!ExtendedItem.ContentProperty.IsSet)
return true;

8
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/GridPlacementSupport.cs

@ -220,13 +220,13 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -220,13 +220,13 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
if (ha == HorizontalAlignment.Stretch)
info.Item.Properties[FrameworkElement.WidthProperty].Reset();
else
info.Item.Properties[FrameworkElement.WidthProperty].SetValue(info.Bounds.Width);
//else
// info.Item.Properties[FrameworkElement.WidthProperty].SetValue(info.Bounds.Width);
if (va == VerticalAlignment.Stretch)
info.Item.Properties[FrameworkElement.HeightProperty].Reset();
else
info.Item.Properties[FrameworkElement.HeightProperty].SetValue(info.Bounds.Height);
//else
// info.Item.Properties[FrameworkElement.HeightProperty].SetValue(info.Bounds.Height);
}
public override void LeaveContainer(PlacementOperation operation)

2
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/MarginHandleExtension.cs

@ -82,7 +82,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -82,7 +82,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
var margin = (Thickness) this.ExtendedItem.Properties[FrameworkElement.MarginProperty].ValueOnInstance;
var point = this.ExtendedItem.View.TranslatePoint(new Point(), _grid);
var position = new Rect(point, this.ExtendedItem.View.RenderSize);
var position = new Rect(point, PlacementOperation.GetRealElementSize(this.ExtendedItem.View));
MarginHandle handle = null;
if (sender is MarginHandle)
handle = sender as MarginHandle;

4
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SnaplinePlacementBehavior.cs

@ -279,6 +279,10 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -279,6 +279,10 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
void DrawLine(double x1, double y1, double x2, double y2)
{
if (double.IsInfinity(x1) || double.IsNaN(x1) || double.IsInfinity(y1) || double.IsNaN(y1) ||
double.IsInfinity(x2) || double.IsNaN(x2) || double.IsInfinity(y2) || double.IsNaN(y2))
return;
var line1 = new Line() {
X1 = x1,
Y1 = y1,

2
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/TextBlockRightClickContextMenu.xaml.cs

@ -50,7 +50,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -50,7 +50,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
var dlg = new Window()
{
Content = new FormatedTextEditor(designItem),
Width = 400,
Width = 440,
Height = 200,
WindowStyle = WindowStyle.ToolWindow,
Owner = ((DesignPanel) designItem.Context.Services.DesignPanel).TryFindParent<Window>(),

BIN
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Images/edit-underline.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

BIN
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Images/paint-can-color.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 B

4
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs

@ -154,10 +154,10 @@ namespace ICSharpCode.WpfDesign.Designer @@ -154,10 +154,10 @@ namespace ICSharpCode.WpfDesign.Designer
if (newS.HasValue)
{
if (!(s.Width > 0) && newS.Value.Width > 0)
if (!(s.Width > 5) && newS.Value.Width > 0)
s.Width = newS.Value.Width;
if (!(s.Height > 0) && newS.Value.Height > 0)
if (!(s.Height > 5) && newS.Value.Height > 0)
s.Height = newS.Value.Height;
}

826
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/FormatedTextEditor/FormatedTextEditor.xaml

@ -4,17 +4,829 @@ @@ -4,17 +4,829 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:componentModel="clr-namespace:System.ComponentModel;assembly=WindowsBase"
mc:Ignorable="d" d:DesignWidth="410" d:DesignHeight="259" >
<UserControl.Resources>
<CollectionViewSource x:Key="Fonts" Source="{Binding Source={x:Static Fonts.SystemFontFamilies}}">
<CollectionViewSource.SortDescriptions>
<componentModel:SortDescription PropertyName="Source" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
<Style x:Key="RichTextBoxFormatBarStyle" TargetType="{x:Type xctk:RichTextBoxFormatBar}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type xctk:RichTextBoxFormatBar}">
<ControlTemplate.Resources>
<Style x:Key="{x:Type Separator}" TargetType="{x:Type Separator}">
<Style.BasedOn>
<Style TargetType="{x:Type Separator}">
<Setter Property="Background" Value="#FFC6C7C6"/>
<Setter Property="MinWidth" Value="1"/>
<Setter Property="MinHeight" Value="1"/>
<Setter Property="Margin" Value="2"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Separator}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Style.BasedOn>
</Style>
</ControlTemplate.Resources>
<Border BorderBrush="Gray" BorderThickness="1" Background="WhiteSmoke" CornerRadius="3">
<Grid Margin="5,0,5,5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Thumb x:Name="_dragWidget" Visibility="Collapsed" Height="10">
<Thumb.Template>
<ControlTemplate TargetType="{x:Type Thumb}">
<Border Background="Transparent" Cursor="Hand" ToolTip="Click to Drag">
<StackPanel VerticalAlignment="Center" Width="75">
<Line Margin="0.5" Stretch="Fill" SnapsToDevicePixels="True" Stroke="Gray" StrokeThickness="1" StrokeDashArray="1 2" X1="0" X2="1"/>
<Line Margin="0.5" Stretch="Fill" SnapsToDevicePixels="True" Stroke="Gray" StrokeThickness="1" StrokeDashArray="1 2" X1="0" X2="1"/>
<Line Margin="0.5" Stretch="Fill" SnapsToDevicePixels="True" Stroke="Gray" StrokeThickness="1" StrokeDashArray="1 2" X1="0" X2="1"/>
</StackPanel>
</Border>
</ControlTemplate>
</Thumb.Template>
</Thumb>
<StackPanel Grid.Row="1">
<StackPanel Orientation="Horizontal">
<ComboBox x:Name="_cmbFontFamilies" IsEditable="True" ToolTip="Font Family" Width="100">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock FontFamily="{Binding}" Text="{Binding}" ToolTip="{Binding}" />
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<ComboBox x:Name="_cmbFontSizes" IsEditable="True" ToolTip="Font Size" Margin="3,0,0,0" Width="43"/>
<ToggleButton x:Name="_btnBullets" Visibility="Collapsed" CommandTarget="{Binding Target, RelativeSource={RelativeSource TemplatedParent}}" Command="EditingCommands.ToggleBullets" ToolTip="Bullets">
</ToggleButton>
<ToggleButton x:Name="_btnNumbers" Visibility="Collapsed" CommandTarget="{Binding Target, RelativeSource={RelativeSource TemplatedParent}}" Command="EditingCommands.ToggleNumbering" ToolTip="Numbering">
</ToggleButton>
</StackPanel>
<StackPanel Margin="0,3,0,0" Orientation="Horizontal">
<ToggleButton x:Name="_btnBold" CommandTarget="{Binding Target, RelativeSource={RelativeSource TemplatedParent}}" Command="EditingCommands.ToggleBold" ToolTip="Bold">
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<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 ToggleButton}">
<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" RenderOptions.BitmapScalingMode="NearestNeighbor" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1" VerticalAlignment="Center"/>
</StackPanel>
</Border>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="OuterBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFEFBF4" Offset="0"/>
<GradientStop Color="#FFFDE7CE" Offset="0.19"/>
<GradientStop Color="#FFFDDEB8" Offset="0.39"/>
<GradientStop Color="#FFFFCE6B" Offset="0.39"/>
<GradientStop Color="#FFFFDE9A" Offset="0.79"/>
<GradientStop Color="#FFFFEBAA" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFFFB700"/>
<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">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFFDCA0" Offset="0"/>
<GradientStop Color="#FFFFD692" Offset="0.18"/>
<GradientStop Color="#FFFFC45D" Offset="0.39"/>
<GradientStop Color="#FFFFD178" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFE3C085" Offset="0"/>
<GradientStop Color="#FFF4CC89" Offset="0.19"/>
<GradientStop Color="#FFF5C777" Offset="0.36"/>
<GradientStop Color="#FFF5BB56" Offset="0.36"/>
<GradientStop Color="#FFF4CE9A" Offset="0.79"/>
<GradientStop Color="#FFF3E28D" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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>
</ToggleButton.Style>
<Image>
<Image.Source>
<BitmapImage UriSource="pack://application:,,,/Xceed.Wpf.Toolkit;v2.2.0.0;component/RichTextBoxFormatBar/Images/Bold16.png"/>
</Image.Source>
</Image>
</ToggleButton>
<ToggleButton x:Name="_btnItalic" CommandTarget="{Binding Target, RelativeSource={RelativeSource TemplatedParent}}" Command="EditingCommands.ToggleItalic" ToolTip="Italic">
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<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 ToggleButton}">
<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" RenderOptions.BitmapScalingMode="NearestNeighbor" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1" VerticalAlignment="Center"/>
</StackPanel>
</Border>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="OuterBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFEFBF4" Offset="0"/>
<GradientStop Color="#FFFDE7CE" Offset="0.19"/>
<GradientStop Color="#FFFDDEB8" Offset="0.39"/>
<GradientStop Color="#FFFFCE6B" Offset="0.39"/>
<GradientStop Color="#FFFFDE9A" Offset="0.79"/>
<GradientStop Color="#FFFFEBAA" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFFFB700"/>
<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">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFFDCA0" Offset="0"/>
<GradientStop Color="#FFFFD692" Offset="0.18"/>
<GradientStop Color="#FFFFC45D" Offset="0.39"/>
<GradientStop Color="#FFFFD178" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFE3C085" Offset="0"/>
<GradientStop Color="#FFF4CC89" Offset="0.19"/>
<GradientStop Color="#FFF5C777" Offset="0.36"/>
<GradientStop Color="#FFF5BB56" Offset="0.36"/>
<GradientStop Color="#FFF4CE9A" Offset="0.79"/>
<GradientStop Color="#FFF3E28D" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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>
</ToggleButton.Style>
<Image>
<Image.Source>
<BitmapImage UriSource="pack://application:,,,/Xceed.Wpf.Toolkit;v2.2.0.0;component/RichTextBoxFormatBar/Images/Italic16.png"/>
</Image.Source>
</Image>
</ToggleButton>
<ToggleButton x:Name="_btnUnderline" CommandTarget="{Binding Target, RelativeSource={RelativeSource TemplatedParent}}" Command="EditingCommands.ToggleUnderline" ToolTip="Underline">
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<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 ToggleButton}">
<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" RenderOptions.BitmapScalingMode="NearestNeighbor" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1" VerticalAlignment="Center"/>
</StackPanel>
</Border>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="OuterBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFEFBF4" Offset="0"/>
<GradientStop Color="#FFFDE7CE" Offset="0.19"/>
<GradientStop Color="#FFFDDEB8" Offset="0.39"/>
<GradientStop Color="#FFFFCE6B" Offset="0.39"/>
<GradientStop Color="#FFFFDE9A" Offset="0.79"/>
<GradientStop Color="#FFFFEBAA" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFFFB700"/>
<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">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFFDCA0" Offset="0"/>
<GradientStop Color="#FFFFD692" Offset="0.18"/>
<GradientStop Color="#FFFFC45D" Offset="0.39"/>
<GradientStop Color="#FFFFD178" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFE3C085" Offset="0"/>
<GradientStop Color="#FFF4CC89" Offset="0.19"/>
<GradientStop Color="#FFF5C777" Offset="0.36"/>
<GradientStop Color="#FFF5BB56" Offset="0.36"/>
<GradientStop Color="#FFF4CE9A" Offset="0.79"/>
<GradientStop Color="#FFF3E28D" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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>
</ToggleButton.Style>
<Image>
<Image.Source>
<BitmapImage UriSource="pack://application:,,,/Xceed.Wpf.Toolkit;v2.2.0.0;component/RichTextBoxFormatBar/Images/Underline16.png"/>
</Image.Source>
</Image>
</ToggleButton>
<ToggleButton ToolTip="ToggleStrikethrough" Click="StrikeThroughButton_Click">
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<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 ToggleButton}">
<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" RenderOptions.BitmapScalingMode="NearestNeighbor" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1" VerticalAlignment="Center"/>
</StackPanel>
</Border>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="OuterBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFEFBF4" Offset="0"/>
<GradientStop Color="#FFFDE7CE" Offset="0.19"/>
<GradientStop Color="#FFFDDEB8" Offset="0.39"/>
<GradientStop Color="#FFFFCE6B" Offset="0.39"/>
<GradientStop Color="#FFFFDE9A" Offset="0.79"/>
<GradientStop Color="#FFFFEBAA" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFFFB700"/>
<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">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFFDCA0" Offset="0"/>
<GradientStop Color="#FFFFD692" Offset="0.18"/>
<GradientStop Color="#FFFFC45D" Offset="0.39"/>
<GradientStop Color="#FFFFD178" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFE3C085" Offset="0"/>
<GradientStop Color="#FFF4CC89" Offset="0.19"/>
<GradientStop Color="#FFF5C777" Offset="0.36"/>
<GradientStop Color="#FFF5BB56" Offset="0.36"/>
<GradientStop Color="#FFF4CE9A" Offset="0.79"/>
<GradientStop Color="#FFF3E28D" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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>
</ToggleButton.Style>
<Image Source="/ICSharpCode.WpfDesign.Designer;component/Images/edit-strike.png" />
</ToggleButton>
<Separator/>
<RadioButton x:Name="_btnAlignLeft" Visibility="Collapsed" CommandTarget="{Binding Target, RelativeSource={RelativeSource TemplatedParent}}" Command="EditingCommands.AlignLeft" ToolTip="Align Left">
</RadioButton>
<RadioButton x:Name="_btnAlignCenter" Visibility="Collapsed" CommandTarget="{Binding Target, RelativeSource={RelativeSource TemplatedParent}}" Command="EditingCommands.AlignCenter" ToolTip="Align Center">
</RadioButton>
<RadioButton x:Name="_btnAlignRight" Visibility="Collapsed" CommandTarget="{Binding Target, RelativeSource={RelativeSource TemplatedParent}}" Command="EditingCommands.AlignRight" ToolTip="Align Right">
</RadioButton>
<xctk:ColorPicker x:Name="_cmbFontBackgroundColor" BorderThickness="0" ToolTip="Text Highlight Color">
<xctk:ColorPicker.ButtonStyle>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Background" Value="White"/>
<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 ToggleButton}">
<Grid SnapsToDevicePixels="True">
<Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" 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}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid>
<xctk:RichTextBox Margin="10,76,10,10" x:Name="richTextBox">
<xctk:RichTextBoxFormatBarManager.FormatBar>
<xctk:RichTextBoxFormatBar />
</xctk:RichTextBoxFormatBarManager.FormatBar>
<Image Height="16" Width="16">
<Image.Source>
<BitmapImage UriSource="pack://application:,,,/Xceed.Wpf.Toolkit;v2.2.0.0;component/RichTextBoxFormatBar/Images/TextHighlightColorPicker16.png"/>
</Image.Source>
</Image>
<Rectangle Height="4" Margin="0,12,0,0" Grid.Row="1">
<Rectangle.Fill>
<Binding Path="SelectedColor" RelativeSource="{RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type xctk:ColorPicker}}">
<Binding.Converter>
<xctk:ColorToSolidColorBrushConverter/>
</Binding.Converter>
</Binding>
</Rectangle.Fill>
</Rectangle>
</Grid>
<Path Grid.Column="1" Data="M0,1C0,1 0,0 0,0 0,0 3,0 3,0 3,0 3,1 3,1 3,1 4,1 4,1 4,1 4,0 4,0 4,0 7,0 7,0 7,0 7,1 7,1 7,1 6,1 6,1 6,1 6,2 6,2 6,2 5,2 5,2 5,2 5,3 5,3 5,3 4,3 4,3 4,3 4,4 4,4 4,4 3,4 3,4 3,4 3,3 3,3 3,3 2,3 2,3 2,3 2,2 2,2 2,2 1,2 1,2 1,2 1,1 1,1 1,1 0,1 0,1z" Fill="Black" Height="4" Width="7"/>
</Grid>
</Border>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="OuterBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFEFBF4" Offset="0"/>
<GradientStop Color="#FFFDE7CE" Offset="0.19"/>
<GradientStop Color="#FFFDDEB8" Offset="0.39"/>
<GradientStop Color="#FFFFCE6B" Offset="0.39"/>
<GradientStop Color="#FFFFDE9A" Offset="0.79"/>
<GradientStop Color="#FFFFEBAA" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFFFB700"/>
<Setter Property="BorderBrush" TargetName="InnerBorder" Value="#80FFFFFF"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="TextElement.Foreground" TargetName="OuterBorder" Value="#FF9E9E9E"/>
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" TargetName="OuterBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFFDCA0" Offset="0"/>
<GradientStop Color="#FFFFD692" Offset="0.18"/>
<GradientStop Color="#FFFFC45D" Offset="0.39"/>
<GradientStop Color="#FFFFD178" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFE3C085" Offset="0"/>
<GradientStop Color="#FFF4CC89" Offset="0.19"/>
<GradientStop Color="#FFF5C777" Offset="0.36"/>
<GradientStop Color="#FFF5BB56" Offset="0.36"/>
<GradientStop Color="#FFF4CE9A" Offset="0.79"/>
<GradientStop Color="#FFF3E28D" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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>
</xctk:ColorPicker.ButtonStyle>
</xctk:ColorPicker>
<xctk:ColorPicker x:Name="_cmbFontColor" BorderThickness="0" ToolTip="Font Color">
<xctk:ColorPicker.ButtonStyle>
<Style TargetType="{x:Type ToggleButton}">
<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 ToggleButton}">
<Grid SnapsToDevicePixels="True">
<Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" 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}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid>
<Image Height="16" Width="16">
<Image.Source>
<BitmapImage UriSource="pack://application:,,,/Xceed.Wpf.Toolkit;v2.2.0.0;component/RichTextBoxFormatBar/Images/FontColorPicker16.png"/>
</Image.Source>
</Image>
<Rectangle Height="4" Margin="0,12,0,0" Grid.Row="1">
<Rectangle.Fill>
<Binding Path="SelectedColor" RelativeSource="{RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type xctk:ColorPicker}}">
<Binding.Converter>
<xctk:ColorToSolidColorBrushConverter/>
</Binding.Converter>
</Binding>
</Rectangle.Fill>
</Rectangle>
</Grid>
<Path Grid.Column="1" Data="M0,1C0,1 0,0 0,0 0,0 3,0 3,0 3,0 3,1 3,1 3,1 4,1 4,1 4,1 4,0 4,0 4,0 7,0 7,0 7,0 7,1 7,1 7,1 6,1 6,1 6,1 6,2 6,2 6,2 5,2 5,2 5,2 5,3 5,3 5,3 4,3 4,3 4,3 4,4 4,4 4,4 3,4 3,4 3,4 3,3 3,3 3,3 2,3 2,3 2,3 2,2 2,2 2,2 1,2 1,2 1,2 1,1 1,1 1,1 0,1 0,1z" Fill="Black" Height="4" Width="7"/>
</Grid>
</Border>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="OuterBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFEFBF4" Offset="0"/>
<GradientStop Color="#FFFDE7CE" Offset="0.19"/>
<GradientStop Color="#FFFDDEB8" Offset="0.39"/>
<GradientStop Color="#FFFFCE6B" Offset="0.39"/>
<GradientStop Color="#FFFFDE9A" Offset="0.79"/>
<GradientStop Color="#FFFFEBAA" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFFFB700"/>
<Setter Property="BorderBrush" TargetName="InnerBorder" Value="#80FFFFFF"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="TextElement.Foreground" TargetName="OuterBorder" Value="#FF9E9E9E"/>
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" TargetName="OuterBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFFFDCA0" Offset="0"/>
<GradientStop Color="#FFFFD692" Offset="0.18"/>
<GradientStop Color="#FFFFC45D" Offset="0.39"/>
<GradientStop Color="#FFFFD178" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFE3C085" Offset="0"/>
<GradientStop Color="#FFF4CC89" Offset="0.19"/>
<GradientStop Color="#FFF5C777" Offset="0.36"/>
<GradientStop Color="#FFF5BB56" Offset="0.36"/>
<GradientStop Color="#FFF4CE9A" Offset="0.79"/>
<GradientStop Color="#FFF3E28D" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="#FFC29B29"/>
<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>
</xctk:ColorPicker.ButtonStyle>
</xctk:ColorPicker>
</StackPanel>
</StackPanel>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="IsTabStop" Value="False"/>
</Style>
</UserControl.Resources>
<Grid>
<xctk:RichTextBox Margin="10,74,10,10" x:Name="richTextBox">
</xctk:RichTextBox>
<!--<xctk:RichTextBoxFormatBar Target="{Binding ElementName=richTextBox}" Margin="10,10,105,188" />-->
<Button Content="Ok" Margin="0,10,10,0" HorizontalAlignment="Right" Width="90" Height="28" VerticalAlignment="Top" Click="Ok_Click" />
<Button Content="Cancel" Margin="0,43,10,0" HorizontalAlignment="Right" Width="90" Height="28" VerticalAlignment="Top" Click="Cancel_Click" />
<xctk:RichTextBoxFormatBar x:Name="formatBar" Target="{Binding ElementName=richTextBox}" Margin="10,10,0,0" Style="{DynamicResource RichTextBoxFormatBarStyle}" HorizontalAlignment="Left" Width="295" Height="59" VerticalAlignment="Top" />
<Button Content="Ok" Margin="0,10,10,0" HorizontalAlignment="Right" Width="90" Height="20" VerticalAlignment="Top" Click="Ok_Click" />
<Button Content="Cancel" Margin="0,34,10,0" HorizontalAlignment="Right" Width="90" Height="20" VerticalAlignment="Top" Click="Cancel_Click" />
</Grid>
</UserControl>

17
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/FormatedTextEditor/FormatedTextEditor.xaml.cs

@ -190,5 +190,22 @@ namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.FormatedTextEditor @@ -190,5 +190,22 @@ namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors.FormatedTextEditor
{
this.TryFindParent<Window>().Close();
}
private void StrikeThroughButton_Click(object sender, RoutedEventArgs e)
{
TextRange range = new TextRange(richTextBox.Selection.Start, richTextBox.Selection.End);
TextDecorationCollection tdc = (TextDecorationCollection) richTextBox.Selection.GetPropertyValue(Inline.TextDecorationsProperty);
if (tdc == null || !tdc.Equals(TextDecorations.Strikethrough))
{
tdc = TextDecorations.Strikethrough;
}
else
{
tdc = null;
}
range.ApplyPropertyValue(Inline.TextDecorationsProperty, tdc);
}
}
}

7
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj

@ -85,6 +85,7 @@ @@ -85,6 +85,7 @@
</Compile>
<Compile Include="ArrangeDirection.cs" />
<Compile Include="Controls\RenderTransformOriginThumb.cs" />
<Compile Include="Extensions\BorderForImageControl.cs" />
<Compile Include="Extensions\PartialPanelSelectionHandler.cs" />
<Compile Include="Extensions\TextBlockRightClickContextMenu.xaml.cs">
<DependentUpon>TextBlockRightClickContextMenu.xaml</DependentUpon>
@ -438,4 +439,10 @@ @@ -438,4 +439,10 @@
<ItemGroup>
<Resource Include="Images\grid.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Images\edit-underline.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Images\paint-can-color.png" />
</ItemGroup>
</Project>

3
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Adorners/AdornerPanel.cs

@ -137,7 +137,8 @@ namespace ICSharpCode.WpfDesign.Adorners @@ -137,7 +137,8 @@ namespace ICSharpCode.WpfDesign.Adorners
e.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
}
}
return this.AdornedElement.RenderSize;
return PlacementOperation.GetRealElementSize(this.AdornedElement);
} else {
return base.MeasureOverride(availableSize);
}

14
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PlacementOperation.cs

@ -205,6 +205,20 @@ namespace ICSharpCode.WpfDesign @@ -205,6 +205,20 @@ namespace ICSharpCode.WpfDesign
this.changeGroup = items[0].Context.OpenGroup(type.ToString(), items);
}
/// <summary>
/// The Size wich the Element really should have (even if its smaller Rendered (like emtpy Image!))
/// </summary>
/// <param name="element"></param>
/// <returns></returns>
public static Size GetRealElementSize(UIElement element)
{
var size = element.RenderSize;
if (element is FrameworkElement && !double.IsNaN(((FrameworkElement)element).Width) && !double.IsNaN(((FrameworkElement)element).Height))
size = new Size(((FrameworkElement)element).Width, ((FrameworkElement)element).Height);
return size;
}
/// <summary>
/// Gets the placement behavior associated with the specified items.
/// </summary>

Loading…
Cancel
Save