Browse Source

More cleanup.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4773 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 16 years ago
parent
commit
bb8f2e52dd
  1. 794
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ControlStyles.xaml
  2. 212
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ZoomControl.cs
  3. 2
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignPanel.cs
  4. 12
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignSurface.xaml
  5. 6
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/PropertyGridView.xaml

794
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ControlStyles.xaml

@ -1,416 +1,412 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:ICSharpCode.WpfDesign.Designer.Controls"> xmlns:Controls="clr-namespace:ICSharpCode.WpfDesign.Designer.Controls">
<!-- <!--
This file contains the default styles used by the Controls in ICSharpCode.WpfDesign.Designer.Controls This file contains the default styles used by the Controls in ICSharpCode.WpfDesign.Designer.Controls
--> -->
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="NumericUpDown.xaml" /> <ResourceDictionary Source="NumericUpDown.xaml" />
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
<Style x:Key="ZoomButtonStyle" <Style x:Key="ZoomButtonStyle"
TargetType="RepeatButton"> TargetType="RepeatButton">
<Setter Property="Delay" <Setter Property="Delay"
Value="0" /> Value="0" />
<Setter Property="Focusable" <Setter Property="Focusable"
Value="False" /> Value="False" />
<Setter Property="Opacity" <Setter Property="Opacity"
Value="0.5" /> Value="0.5" />
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="RepeatButton"> <ControlTemplate TargetType="RepeatButton">
<ContentPresenter Margin="5"/> <ContentPresenter Margin="5"/>
<ControlTemplate.Triggers> <ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" <Trigger Property="IsMouseOver"
Value="True"> Value="True">
<Setter Property="Opacity" <Setter Property="Opacity"
Value="1" /> Value="1" />
</Trigger> </Trigger>
</ControlTemplate.Triggers> </ControlTemplate.Triggers>
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
<Style TargetType="{x:Type Controls:ZoomControl}"> <Style TargetType="{x:Type Controls:ZoomControl}">
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:ZoomControl}"> <ControlTemplate TargetType="{x:Type Controls:ZoomControl}">
<Border Background="{TemplateBinding Background}" <Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"> BorderThickness="{TemplateBinding BorderThickness}">
<Grid> <Grid>
<ScrollViewer x:Name="scrollViewer" <ScrollViewer x:Name="scrollViewer"
HorizontalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Visible"> VerticalScrollBarVisibility="Visible">
<Border x:Name="container" <ContentPresenter x:Name="container" />
VerticalAlignment="Center" </ScrollViewer>
HorizontalAlignment="Center"> <StackPanel Orientation="Vertical"
<ContentPresenter /> HorizontalAlignment="Left"
</Border> VerticalAlignment="Bottom"
</ScrollViewer> Margin="3 0 0 20"
<StackPanel Orientation="Vertical" Background="#3000">
HorizontalAlignment="Left" <RepeatButton x:Name="uxPlus"
VerticalAlignment="Bottom" Style="{StaticResource ZoomButtonStyle}">
Margin="3 0 0 20" <Image Source="../Images/ZoomIn.png"
Background="#3000"> Stretch="None"/>
<RepeatButton x:Name="uxPlus" </RepeatButton>
Style="{StaticResource ZoomButtonStyle}"> <RepeatButton x:Name="uxMinus"
<Image Source="../Images/ZoomIn.png" Style="{StaticResource ZoomButtonStyle}">
Stretch="None"/> <Image Source="../Images/ZoomOut.png"
</RepeatButton> Stretch="None" />
<RepeatButton x:Name="uxMinus" </RepeatButton>
Style="{StaticResource ZoomButtonStyle}"> <RepeatButton x:Name="uxReset"
<Image Source="../Images/ZoomOut.png" Style="{StaticResource ZoomButtonStyle}">
Stretch="None" /> <Border Background="#5000"
</RepeatButton> Width="16"
<RepeatButton x:Name="uxReset" Height="16">
Style="{StaticResource ZoomButtonStyle}"> <TextBlock Foreground="White"
<Border Background="#5000" HorizontalAlignment="Center"
Width="16" VerticalAlignment="Center">1</TextBlock>
Height="16"> </Border>
<TextBlock Foreground="White" </RepeatButton>
HorizontalAlignment="Center" </StackPanel>
VerticalAlignment="Center">1</TextBlock> </Grid>
</Border> </Border>
</RepeatButton> </ControlTemplate>
</StackPanel> </Setter.Value>
</Grid> </Setter>
</Border> </Style>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Controls:PanelMoveAdorner}"> <Style TargetType="{x:Type Controls:PanelMoveAdorner}">
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:PanelMoveAdorner}"> <ControlTemplate TargetType="{x:Type Controls:PanelMoveAdorner}">
<Border BorderThickness="4" <Border BorderThickness="4"
Margin="-2" Margin="-2"
BorderBrush="Transparent" BorderBrush="Transparent"
Cursor="SizeAll" /> Cursor="SizeAll" />
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
<Style TargetType="{x:Type Controls:EnumButton}" <Style TargetType="{x:Type Controls:EnumButton}"
BasedOn="{StaticResource {x:Type ToggleButton}}"> BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Margin" <Setter Property="Margin"
Value="3 3 0 3" /> Value="3 3 0 3" />
<Setter Property="MinWidth" <Setter Property="MinWidth"
Value="50" /> Value="50" />
</Style> </Style>
<Style TargetType="{x:Type Controls:ResizeThumb}"> <Style TargetType="{x:Type Controls:ResizeThumb}">
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:ResizeThumb}"> <ControlTemplate TargetType="{x:Type Controls:ResizeThumb}">
<Rectangle Name="thumbRectangle" <Rectangle Name="thumbRectangle"
Width="7" Width="7"
Height="7" Height="7"
SnapsToDevicePixels="True" SnapsToDevicePixels="True"
Stroke="Black" Stroke="Black"
Fill="White" Fill="White"
RadiusX="1.414" RadiusX="1.414"
RadiusY="1.414" /> RadiusY="1.414" />
<ControlTemplate.Triggers> <ControlTemplate.Triggers>
<Trigger Property="IsPrimarySelection" <Trigger Property="IsPrimarySelection"
Value="False"> Value="False">
<Setter TargetName="thumbRectangle" <Setter TargetName="thumbRectangle"
Property="Stroke" Property="Stroke"
Value="White" /> Value="White" />
<Setter TargetName="thumbRectangle" <Setter TargetName="thumbRectangle"
Property="Fill" Property="Fill"
Value="Black" /> Value="Black" />
</Trigger> </Trigger>
<Trigger Property="IsEnabled" <Trigger Property="IsEnabled"
Value="False"> Value="False">
<Setter TargetName="thumbRectangle" <Setter TargetName="thumbRectangle"
Property="Fill" Property="Fill"
Value="Gray" /> Value="Gray" />
</Trigger> </Trigger>
<Trigger Property="ResizeThumbVisible" <Trigger Property="ResizeThumbVisible"
Value="False"> Value="False">
<Setter TargetName="thumbRectangle" <Setter TargetName="thumbRectangle"
Property="Visibility" Property="Visibility"
Value="Hidden" /> Value="Hidden" />
</Trigger> </Trigger>
</ControlTemplate.Triggers> </ControlTemplate.Triggers>
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
<Style TargetType="{x:Type Controls:SelectionFrame}"> <Style TargetType="{x:Type Controls:SelectionFrame}">
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:SelectionFrame}"> <ControlTemplate TargetType="{x:Type Controls:SelectionFrame}">
<Rectangle Fill="#519ABFE5" <Rectangle Fill="#519ABFE5"
Stroke="#FF7A8787" Stroke="#FF7A8787"
StrokeThickness="1" /> StrokeThickness="1" />
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
<Style TargetType="{x:Type Controls:ContainerDragHandle}"> <Style TargetType="{x:Type Controls:ContainerDragHandle}">
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:ContainerDragHandle}"> <ControlTemplate TargetType="{x:Type Controls:ContainerDragHandle}">
<Canvas Height="13" <Canvas Height="13"
Width="13" Width="13"
Name="Canvas" Name="Canvas"
SnapsToDevicePixels="True"> SnapsToDevicePixels="True">
<Rectangle Height="13" <Rectangle Height="13"
Width="13" Width="13"
RadiusX="2" RadiusX="2"
RadiusY="2" RadiusY="2"
Fill="#889ABFE5" Fill="#889ABFE5"
Name="BorderRectangle" Name="BorderRectangle"
Stroke="#FF7A8FB5" Stroke="#FF7A8FB5"
StrokeThickness="1" /> StrokeThickness="1" />
<Path Fill="#FF748EAA" <Path Fill="#FF748EAA"
Canvas.Left="1" Canvas.Left="1"
Canvas.Top="1"> Canvas.Top="1">
<Path.Data> <Path.Data>
<GeometryGroup> <GeometryGroup>
<PathGeometry Figures="M5.5,0L3,3L8,3 M11,5.5L8,3L8,8 M5.5,11L3,8L8,8 M0,5.5L3,3L3,8" /> <PathGeometry Figures="M5.5,0L3,3L8,3 M11,5.5L8,3L8,8 M5.5,11L3,8L8,8 M0,5.5L3,3L3,8" />
<RectangleGeometry Rect="3,5,5,1" /> <RectangleGeometry Rect="3,5,5,1" />
<RectangleGeometry Rect="5,3,1,5" /> <RectangleGeometry Rect="5,3,1,5" />
<RectangleGeometry Rect="5,5,1,1" /> <RectangleGeometry Rect="5,5,1,1" />
</GeometryGroup> </GeometryGroup>
</Path.Data> </Path.Data>
</Path> </Path>
</Canvas> </Canvas>
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
<Style TargetType="{x:Type Controls:WindowClone}"> <Style TargetType="{x:Type Controls:WindowClone}">
<Setter Property="Width" <Setter Property="Width"
Value="640" /> Value="640" />
<Setter Property="Height" <Setter Property="Height"
Value="480" /> Value="480" />
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:WindowClone}"> <ControlTemplate TargetType="{x:Type Controls:WindowClone}">
<Border Background="{DynamicResource {x:Static SystemColors.GradientActiveCaptionBrushKey}}" <Border Background="{DynamicResource {x:Static SystemColors.GradientActiveCaptionBrushKey}}"
BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
BorderThickness="1,1,1,1" BorderThickness="1,1,1,1"
CornerRadius="5,5,5,5"> CornerRadius="5,5,5,5">
<DockPanel Margin="4,0,4,4"> <DockPanel Margin="4,0,4,4">
<DockPanel Height="26" <DockPanel Height="26"
DockPanel.Dock="Top"> DockPanel.Dock="Top">
<Image Width="16" <Image Width="16"
Height="16" Height="16"
Margin="1,0,0,0" Margin="1,0,0,0"
Source="{TemplateBinding Window.Icon}" /> Source="{TemplateBinding Window.Icon}" />
<Button Name="CloseButton" <Button Name="CloseButton"
VerticalAlignment="Top" VerticalAlignment="Top"
Width="43" Width="43"
Height="17" Height="17"
DockPanel.Dock="Right"> DockPanel.Dock="Right">
<Path Fill="#FFF6F2F2" <Path Fill="#FFF6F2F2"
Stretch="Uniform" Stretch="Uniform"
Margin="1" Margin="1"
Stroke="#FF808080" Stroke="#FF808080"
Data="M160,400 L176,400 192,384 208,400 224,400 200,376 224,352 208,352 192,368 176,352 160,352 184,376 z" /> Data="M160,400 L176,400 192,384 208,400 224,400 200,376 224,352 208,352 192,368 176,352 160,352 184,376 z" />
</Button> </Button>
<Button Name="MaximiseButton" <Button Name="MaximiseButton"
VerticalAlignment="Top" VerticalAlignment="Top"
Width="25" Width="25"
Height="17" Height="17"
DockPanel.Dock="Right" /> DockPanel.Dock="Right" />
<Button Name="MinimizeButton" <Button Name="MinimizeButton"
VerticalAlignment="Top" VerticalAlignment="Top"
Width="25" Width="25"
Height="17" Height="17"
DockPanel.Dock="Right"> DockPanel.Dock="Right">
<!--<Rectangle Fill="#FFF6F2F2" RadiusX="0.5" RadiusY="0.5" Width="12" Height="5" Stroke="#FF808080" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>--> <!--<Rectangle Fill="#FFF6F2F2" RadiusX="0.5" RadiusY="0.5" Width="12" Height="5" Stroke="#FF808080" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>-->
</Button> </Button>
<Label Margin="4,0,0,0" <Label Margin="4,0,0,0"
Content="{TemplateBinding Window.Title}" /> Content="{TemplateBinding Window.Title}" />
</DockPanel> </DockPanel>
<Border Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"> <Border Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}">
<Border BorderBrush="{TemplateBinding Border.BorderBrush}" <Border BorderBrush="{TemplateBinding Border.BorderBrush}"
BorderThickness="{TemplateBinding Border.BorderThickness}" BorderThickness="{TemplateBinding Border.BorderThickness}"
Background="{TemplateBinding Panel.Background}"> Background="{TemplateBinding Panel.Background}">
<AdornerDecorator> <AdornerDecorator>
<ContentPresenter ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" <ContentPresenter ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
Content="{TemplateBinding ContentControl.Content}" /> Content="{TemplateBinding ContentControl.Content}" />
</AdornerDecorator> </AdornerDecorator>
</Border> </Border>
</Border> </Border>
</DockPanel> </DockPanel>
</Border> </Border>
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
<Style TargetType="{x:Type Controls:ErrorBalloon}"> <Style TargetType="{x:Type Controls:ErrorBalloon}">
<Setter Property="WindowStyle" <Setter Property="WindowStyle"
Value="None" /> Value="None" />
<Setter Property="AllowsTransparency" <Setter Property="AllowsTransparency"
Value="True" /> Value="True" />
<Setter Property="SizeToContent" <Setter Property="SizeToContent"
Value="WidthAndHeight" /> Value="WidthAndHeight" />
<Setter Property="ShowInTaskbar" <Setter Property="ShowInTaskbar"
Value="False" /> Value="False" />
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:ErrorBalloon}"> <ControlTemplate TargetType="{x:Type Controls:ErrorBalloon}">
<Grid x:Name="LayoutRoot"> <Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Rectangle RadiusX="10" <Rectangle RadiusX="10"
RadiusY="10" RadiusY="10"
Margin="12,36,4,4"> Margin="12,36,4,4">
<Rectangle.Fill> <Rectangle.Fill>
<SolidColorBrush Color="#41626262" /> <SolidColorBrush Color="#41626262" />
</Rectangle.Fill> </Rectangle.Fill>
</Rectangle> </Rectangle>
<Border Margin="8,32,8,8" <Border Margin="8,32,8,8"
Background="{DynamicResource {x:Static SystemColors.InfoBrushKey}}" Background="{DynamicResource {x:Static SystemColors.InfoBrushKey}}"
BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
BorderThickness="1,1,1,1" BorderThickness="1,1,1,1"
CornerRadius="10,10,10,10" CornerRadius="10,10,10,10"
Padding="10,10,10,10"> Padding="10,10,10,10">
<Border BorderBrush="{TemplateBinding Border.BorderBrush}" <Border BorderBrush="{TemplateBinding Border.BorderBrush}"
BorderThickness="{TemplateBinding Border.BorderThickness}" BorderThickness="{TemplateBinding Border.BorderThickness}"
Background="{TemplateBinding Panel.Background}"> Background="{TemplateBinding Panel.Background}">
<AdornerDecorator> <AdornerDecorator>
<ContentPresenter ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" <ContentPresenter ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
Content="{TemplateBinding ContentControl.Content}" /> Content="{TemplateBinding ContentControl.Content}" />
</AdornerDecorator> </AdornerDecorator>
</Border> </Border>
</Border> </Border>
<Path Fill="{DynamicResource {x:Static SystemColors.InfoBrushKey}}" <Path Fill="{DynamicResource {x:Static SystemColors.InfoBrushKey}}"
Stretch="Fill" Stretch="Fill"
HorizontalAlignment="Left" HorizontalAlignment="Left"
Margin="34.75,9.25,0,0" Margin="34.75,9.25,0,0"
VerticalAlignment="Top" VerticalAlignment="Top"
Width="15.25" Width="15.25"
Height="24.5" Height="24.5"
Data="M34.75,33.75 L40.5,9.25 50,33.5 z" /> Data="M34.75,33.75 L40.5,9.25 50,33.5 z" />
<Path Stretch="Fill" <Path Stretch="Fill"
Stroke="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" Stroke="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
HorizontalAlignment="Left" HorizontalAlignment="Left"
Margin="34.5,9.25,0,0" Margin="34.5,9.25,0,0"
VerticalAlignment="Top" VerticalAlignment="Top"
Width="16" Width="16"
Height="24" Height="24"
Data="M35,32.75 L40.5,9.25 50,32.75" /> Data="M35,32.75 L40.5,9.25 50,32.75" />
</Grid> </Grid>
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
<Style TargetType="{x:Type Controls:GridRailAdorner}"> <Style TargetType="{x:Type Controls:GridRailAdorner}">
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:GridRailAdorner}"> <ControlTemplate TargetType="{x:Type Controls:GridRailAdorner}">
<Rectangle Fill="#302020ff" /> <Rectangle Fill="#302020ff" />
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
<Style TargetType="{x:Type Controls:GridRowSplitterAdorner}"> <Style TargetType="{x:Type Controls:GridRowSplitterAdorner}">
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:GridRowSplitterAdorner}"> <ControlTemplate TargetType="{x:Type Controls:GridRowSplitterAdorner}">
<Grid Height="{x:Static Controls:GridRailAdorner.SplitterWidth}"> <Grid Height="{x:Static Controls:GridRailAdorner.SplitterWidth}">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="10" /> <ColumnDefinition Width="10" />
<!-- 10=RailSize --> <!-- 10=RailSize -->
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<!-- put a transparent rectangle in the rail so the user does not have to hit the small railHandle --> <!-- put a transparent rectangle in the rail so the user does not have to hit the small railHandle -->
<Rectangle Fill="Transparent" /> <Rectangle Fill="Transparent" />
<Path Name="railHandle" <Path Name="railHandle"
Fill="#FFE6E6FF" Fill="#FFE6E6FF"
Stretch="Fill" Stretch="Fill"
Stroke="#FF584FFF" Stroke="#FF584FFF"
Data="M0,0 L0,1 1,0.5 z" /> Data="M0,0 L0,1 1,0.5 z" />
<Path Name="line" <Path Name="line"
Stretch="Fill" Stretch="Fill"
Stroke="#FF584FFF" Stroke="#FF584FFF"
Grid.Column="2" Grid.Column="2"
Margin="-1 0 0 0" Margin="-1 0 0 0"
Data="M0,0.5 L1,0.5" /> Data="M0,0.5 L1,0.5" />
</Grid> </Grid>
<ControlTemplate.Triggers> <ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" <Trigger Property="IsMouseOver"
Value="True"> Value="True">
<Setter TargetName="railHandle" <Setter TargetName="railHandle"
Property="Fill" Property="Fill"
Value="#FFFFB74F" /> Value="#FFFFB74F" />
</Trigger> </Trigger>
<Trigger Property="IsPreview" <Trigger Property="IsPreview"
Value="True"> Value="True">
<Setter TargetName="railHandle" <Setter TargetName="railHandle"
Property="Stroke" Property="Stroke"
Value="#D0FFB74F" /> Value="#D0FFB74F" />
<Setter TargetName="line" <Setter TargetName="line"
Property="Stroke" Property="Stroke"
Value="#D0FFB74F" /> Value="#D0FFB74F" />
</Trigger> </Trigger>
</ControlTemplate.Triggers> </ControlTemplate.Triggers>
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
<Style TargetType="{x:Type Controls:GridColumnSplitterAdorner}"> <Style TargetType="{x:Type Controls:GridColumnSplitterAdorner}">
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:GridColumnSplitterAdorner}"> <ControlTemplate TargetType="{x:Type Controls:GridColumnSplitterAdorner}">
<Grid Width="{x:Static Controls:GridRailAdorner.SplitterWidth}"> <Grid Width="{x:Static Controls:GridRailAdorner.SplitterWidth}">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="10" /> <RowDefinition Height="10" />
<!-- 10=RailSize --> <!-- 10=RailSize -->
<RowDefinition Height="*" /> <RowDefinition Height="*" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<!-- put a transparent rectangle in the rail so the user does not have to hit the small railHandle --> <!-- put a transparent rectangle in the rail so the user does not have to hit the small railHandle -->
<Rectangle Fill="Transparent" /> <Rectangle Fill="Transparent" />
<Path Name="railHandle" <Path Name="railHandle"
Fill="#FFE6E6FF" Fill="#FFE6E6FF"
Stretch="Fill" Stretch="Fill"
Stroke="#FF584FFF" Stroke="#FF584FFF"
Data="M0,0 L1,0 0.5,1 z" /> Data="M0,0 L1,0 0.5,1 z" />
<Path Name="line" <Path Name="line"
Stretch="Fill" Stretch="Fill"
Stroke="#FF584FFF" Stroke="#FF584FFF"
Grid.Row="2" Grid.Row="2"
Margin="0 -1 0 0" Margin="0 -1 0 0"
Data="M0.5,0 L0.5,1" /> Data="M0.5,0 L0.5,1" />
</Grid> </Grid>
<ControlTemplate.Triggers> <ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" <Trigger Property="IsMouseOver"
Value="True"> Value="True">
<Setter TargetName="railHandle" <Setter TargetName="railHandle"
Property="Fill" Property="Fill"
Value="#FFFFB74F" /> Value="#FFFFB74F" />
</Trigger> </Trigger>
<Trigger Property="IsPreview" <Trigger Property="IsPreview"
Value="True"> Value="True">
<Setter TargetName="railHandle" <Setter TargetName="railHandle"
Property="Stroke" Property="Stroke"
Value="#D0FFB74F" /> Value="#D0FFB74F" />
<Setter TargetName="line" <Setter TargetName="line"
Property="Stroke" Property="Stroke"
Value="#D0FFB74F" /> Value="#D0FFB74F" />
</Trigger> </Trigger>
</ControlTemplate.Triggers> </ControlTemplate.Triggers>
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
</ResourceDictionary> </ResourceDictionary>

212
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ZoomControl.cs

@ -23,7 +23,7 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
static ZoomControl() static ZoomControl()
{ {
DefaultStyleKeyProperty.OverrideMetadata(typeof(ZoomControl), DefaultStyleKeyProperty.OverrideMetadata(typeof(ZoomControl),
new FrameworkPropertyMetadata(typeof(ZoomControl))); new FrameworkPropertyMetadata(typeof(ZoomControl)));
PanToolCursor = new Cursor(GetStream("Images/PanToolCursor.cur")); PanToolCursor = new Cursor(GetStream("Images/PanToolCursor.cur"));
PanToolCursorMouseDown = new Cursor(GetStream("Images/PanToolCursorMouseDown.cur")); PanToolCursorMouseDown = new Cursor(GetStream("Images/PanToolCursorMouseDown.cur"));
@ -43,25 +43,25 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
public static double Minimum = 0.1; public static double Minimum = 0.1;
public static double Maximum = 10; public static double Maximum = 10;
double startHorizontalOffset; double startHorizontalOffset;
double startVericalOffset; double startVericalOffset;
internal ScrollViewer ScrollViewer; internal ScrollViewer ScrollViewer;
Border container; FrameworkElement container;
ScaleTransform transform; ScaleTransform transform;
Point startPoint; Point startPoint;
bool isMouseDown; bool isMouseDown;
bool pan; bool pan;
public static readonly DependencyProperty ZoomProperty = public static readonly DependencyProperty ZoomProperty =
DependencyProperty.Register("Zoom", typeof(double), typeof(ZoomControl), DependencyProperty.Register("Zoom", typeof(double), typeof(ZoomControl),
new PropertyMetadata(1.0, null, CoerceZoom)); new PropertyMetadata(1.0, null, CoerceZoom));
public double Zoom public double Zoom
{ {
get { return (double)GetValue(ZoomProperty); } get { return (double)GetValue(ZoomProperty); }
set { SetValue(ZoomProperty, value); } set { SetValue(ZoomProperty, value); }
} }
static object CoerceZoom(DependencyObject d, object baseValue) static object CoerceZoom(DependencyObject d, object baseValue)
{ {
@ -74,7 +74,7 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
base.OnApplyTemplate(); base.OnApplyTemplate();
ScrollViewer = (ScrollViewer)Template.FindName("scrollViewer", this); ScrollViewer = (ScrollViewer)Template.FindName("scrollViewer", this);
container = (Border)Template.FindName("container", this); container = (FrameworkElement)Template.FindName("container", this);
transform = new ScaleTransform(); transform = new ScaleTransform();
container.LayoutTransform = transform; container.LayoutTransform = transform;
@ -87,114 +87,114 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
uxReset.Click += delegate { Reset(); }; uxReset.Click += delegate { Reset(); };
} }
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e) protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
{ {
base.OnPropertyChanged(e); base.OnPropertyChanged(e);
if (e.Property == ZoomProperty) if (e.Property == ZoomProperty)
{ {
transform.ScaleX = Zoom; transform.ScaleX = Zoom;
transform.ScaleY = Zoom; transform.ScaleY = Zoom;
CenterViewport((double)e.OldValue); CenterViewport((double)e.OldValue);
} }
} }
protected override void OnKeyDown(KeyEventArgs e) protected override void OnKeyDown(KeyEventArgs e)
{ {
if (!pan && e.Key == Key.Space) if (!pan && e.Key == Key.Space)
{ {
Cursor = PanToolCursor; Cursor = PanToolCursor;
pan = true; pan = true;
} }
} }
protected override void OnKeyUp(KeyEventArgs e) protected override void OnKeyUp(KeyEventArgs e)
{ {
if (e.Key == Key.Space) if (e.Key == Key.Space)
{ {
ClearValue(CursorProperty); ClearValue(CursorProperty);
pan = false; pan = false;
} }
} }
protected override void OnPreviewMouseDown(MouseButtonEventArgs e) protected override void OnPreviewMouseDown(MouseButtonEventArgs e)
{ {
if (pan) if (pan)
{ {
Cursor = PanToolCursorMouseDown; Cursor = PanToolCursorMouseDown;
Mouse.Capture(this); // will call move Mouse.Capture(this); // will call move
isMouseDown = true; isMouseDown = true;
startPoint = e.GetPosition(this); startPoint = e.GetPosition(this);
PanStart(); PanStart();
} }
} }
protected override void OnPreviewMouseMove(MouseEventArgs e) protected override void OnPreviewMouseMove(MouseEventArgs e)
{ {
if (isMouseDown && pan) if (isMouseDown && pan)
{ {
var endPoint = e.GetPosition(this); var endPoint = e.GetPosition(this);
PanContinue(endPoint - startPoint); PanContinue(endPoint - startPoint);
} }
} }
protected override void OnPreviewMouseUp(MouseButtonEventArgs e) protected override void OnPreviewMouseUp(MouseButtonEventArgs e)
{ {
if (isMouseDown) if (isMouseDown)
{ {
Cursor = PanToolCursor; Cursor = PanToolCursor;
isMouseDown = false; isMouseDown = false;
Mouse.Capture(null); Mouse.Capture(null);
} }
} }
protected override void OnMouseEnter(MouseEventArgs e) protected override void OnMouseEnter(MouseEventArgs e)
{ {
Focus(); Focus();
} }
public void Fit() public void Fit()
{ {
Zoom = Math.Min( Zoom = Math.Min(
ScrollViewer.ActualWidth / container.ActualWidth, ScrollViewer.ActualWidth / container.ActualWidth,
ScrollViewer.ActualHeight / container.ActualHeight); ScrollViewer.ActualHeight / container.ActualHeight);
} }
public void ZoomIn() public void ZoomIn()
{ {
Zoom *= ZoomFactor; Zoom *= ZoomFactor;
} }
public void ZoomOut() public void ZoomOut()
{ {
Zoom /= ZoomFactor; Zoom /= ZoomFactor;
} }
public void Reset() public void Reset()
{ {
Zoom = 1; Zoom = 1;
ScrollViewer.ScrollToHorizontalOffset(0); ScrollViewer.ScrollToHorizontalOffset(0);
ScrollViewer.ScrollToVerticalOffset(0); ScrollViewer.ScrollToVerticalOffset(0);
} }
void PanStart() void PanStart()
{ {
startHorizontalOffset = ScrollViewer.HorizontalOffset; startHorizontalOffset = ScrollViewer.HorizontalOffset;
startVericalOffset = ScrollViewer.VerticalOffset; startVericalOffset = ScrollViewer.VerticalOffset;
} }
void PanContinue(Vector delta) void PanContinue(Vector delta)
{ {
ScrollViewer.ScrollToHorizontalOffset(startHorizontalOffset - delta.X); ScrollViewer.ScrollToHorizontalOffset(startHorizontalOffset - delta.X);
ScrollViewer.ScrollToVerticalOffset(startVericalOffset - delta.Y); ScrollViewer.ScrollToVerticalOffset(startVericalOffset - delta.Y);
} }
void CenterViewport(double oldZoom) void CenterViewport(double oldZoom)
{ {
var k = Zoom / oldZoom; var k = Zoom / oldZoom;
var add = (k * ScrollViewer.ViewportWidth - ScrollViewer.ViewportWidth) / 2; var add = (k * ScrollViewer.ViewportWidth - ScrollViewer.ViewportWidth) / 2;
ScrollViewer.ScrollToHorizontalOffset(k * ScrollViewer.HorizontalOffset + add); ScrollViewer.ScrollToHorizontalOffset(k * ScrollViewer.HorizontalOffset + add);
add = (k * ScrollViewer.ViewportHeight - ScrollViewer.ViewportHeight) / 2; add = (k * ScrollViewer.ViewportHeight - ScrollViewer.ViewportHeight) / 2;
ScrollViewer.ScrollToVerticalOffset(k * ScrollViewer.VerticalOffset + add); ScrollViewer.ScrollToVerticalOffset(k * ScrollViewer.VerticalOffset + add);
} }
} }
} }

2
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignPanel.cs

@ -141,8 +141,6 @@ namespace ICSharpCode.WpfDesign.Designer
public DesignPanel() public DesignPanel()
{ {
this.Focusable = true; this.Focusable = true;
this.VerticalAlignment = VerticalAlignment.Top;
this.HorizontalAlignment = HorizontalAlignment.Left;
this.AllowDrop = true; this.AllowDrop = true;
DesignerProperties.SetIsInDesignMode(this, true); DesignerProperties.SetIsInDesignMode(this, true);

12
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignSurface.xaml

@ -5,11 +5,9 @@
xmlns:Controls="clr-namespace:ICSharpCode.WpfDesign.Designer.Controls" xmlns:Controls="clr-namespace:ICSharpCode.WpfDesign.Designer.Controls"
DataContext="{x:Null}" DataContext="{x:Null}"
Background="#888"> Background="#888">
<Controls:ZoomControl x:Name="uxZoom">
<Controls:ZoomControl x:Name="uxZoom"> <Default:DesignPanel x:Name="_designPanel">
<Default:DesignPanel x:Name="_designPanel"> <Border x:Name="_sceneContainer" />
<Border x:Name="_sceneContainer" /> </Default:DesignPanel>
</Default:DesignPanel> </Controls:ZoomControl>
</Controls:ZoomControl>
</UserControl> </UserControl>

6
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/PropertyGridView.xaml

@ -209,7 +209,7 @@
</DockPanel> </DockPanel>
<Border BorderThickness="1 0 0 0" <Border BorderThickness="1 0 0 0"
BorderBrush="{x:Static SystemColors.ControlBrush}"> BorderBrush="{x:Static SystemColors.ControlBrush}">
<ContentPresenter x:Name="editorConatiner" <ContentPresenter x:Name="editorContainer"
Content="{Binding Editor}" Content="{Binding Editor}"
VerticalAlignment="Center" VerticalAlignment="Center"
Margin="3 0" /> Margin="3 0" />
@ -229,10 +229,10 @@
<DataTemplate.Triggers> <DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsEnabled}" <DataTrigger Binding="{Binding IsEnabled}"
Value="False"> Value="False">
<Setter TargetName="editorConatiner" <Setter TargetName="editorContainer"
Property="Opacity" Property="Opacity"
Value="0.5" /> Value="0.5" />
<Setter TargetName="editorConatiner" <Setter TargetName="editorContainer"
Property="IsHitTestVisible" Property="IsHitTestVisible"
Value="False" /> Value="False" />
</DataTrigger> </DataTrigger>

Loading…
Cancel
Save