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. 820
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ControlStyles.xaml
  2. 214
      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

820
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> <Style TargetType="{x:Type Controls:PanelMoveAdorner}">
</Setter> <Setter Property="Template">
</Style> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:PanelMoveAdorner}">
<Style TargetType="{x:Type Controls:PanelMoveAdorner}"> <Border BorderThickness="4"
<Setter Property="Template"> Margin="-2"
<Setter.Value> BorderBrush="Transparent"
<ControlTemplate TargetType="{x:Type Controls:PanelMoveAdorner}"> Cursor="SizeAll" />
<Border BorderThickness="4" </ControlTemplate>
Margin="-2" </Setter.Value>
BorderBrush="Transparent" </Setter>
Cursor="SizeAll" /> </Style>
</ControlTemplate>
</Setter.Value> <Style TargetType="{x:Type Controls:EnumButton}"
</Setter> BasedOn="{StaticResource {x:Type ToggleButton}}">
</Style> <Setter Property="Margin"
Value="3 3 0 3" />
<Style TargetType="{x:Type Controls:EnumButton}" <Setter Property="MinWidth"
BasedOn="{StaticResource {x:Type ToggleButton}}"> Value="50" />
<Setter Property="Margin" </Style>
Value="3 3 0 3" />
<Setter Property="MinWidth" <Style TargetType="{x:Type Controls:ResizeThumb}">
Value="50" /> <Setter Property="Template">
</Style> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:ResizeThumb}">
<Style TargetType="{x:Type Controls:ResizeThumb}"> <Rectangle Name="thumbRectangle"
<Setter Property="Template"> Width="7"
<Setter.Value> Height="7"
<ControlTemplate TargetType="{x:Type Controls:ResizeThumb}"> SnapsToDevicePixels="True"
<Rectangle Name="thumbRectangle" Stroke="Black"
Width="7" Fill="White"
Height="7" RadiusX="1.414"
SnapsToDevicePixels="True" RadiusY="1.414" />
Stroke="Black" <ControlTemplate.Triggers>
Fill="White" <Trigger Property="IsPrimarySelection"
RadiusX="1.414" Value="False">
RadiusY="1.414" /> <Setter TargetName="thumbRectangle"
<ControlTemplate.Triggers> Property="Stroke"
<Trigger Property="IsPrimarySelection" Value="White" />
Value="False"> <Setter TargetName="thumbRectangle"
<Setter TargetName="thumbRectangle" Property="Fill"
Property="Stroke" Value="Black" />
Value="White" /> </Trigger>
<Setter TargetName="thumbRectangle" <Trigger Property="IsEnabled"
Property="Fill" Value="False">
Value="Black" /> <Setter TargetName="thumbRectangle"
</Trigger> Property="Fill"
<Trigger Property="IsEnabled" Value="Gray" />
Value="False"> </Trigger>
<Setter TargetName="thumbRectangle" <Trigger Property="ResizeThumbVisible"
Property="Fill" Value="False">
Value="Gray" /> <Setter TargetName="thumbRectangle"
</Trigger> Property="Visibility"
<Trigger Property="ResizeThumbVisible" Value="Hidden" />
Value="False"> </Trigger>
<Setter TargetName="thumbRectangle" </ControlTemplate.Triggers>
Property="Visibility" </ControlTemplate>
Value="Hidden" /> </Setter.Value>
</Trigger> </Setter>
</ControlTemplate.Triggers> </Style>
</ControlTemplate>
</Setter.Value> <Style TargetType="{x:Type Controls:SelectionFrame}">
</Setter> <Setter Property="Template">
</Style> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:SelectionFrame}">
<Style TargetType="{x:Type Controls:SelectionFrame}"> <Rectangle Fill="#519ABFE5"
<Setter Property="Template"> Stroke="#FF7A8787"
<Setter.Value> StrokeThickness="1" />
<ControlTemplate TargetType="{x:Type Controls:SelectionFrame}"> </ControlTemplate>
<Rectangle Fill="#519ABFE5" </Setter.Value>
Stroke="#FF7A8787" </Setter>
StrokeThickness="1" /> </Style>
</ControlTemplate>
</Setter.Value> <Style TargetType="{x:Type Controls:ContainerDragHandle}">
</Setter> <Setter Property="Template">
</Style> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:ContainerDragHandle}">
<Style TargetType="{x:Type Controls:ContainerDragHandle}"> <Canvas Height="13"
<Setter Property="Template"> Width="13"
<Setter.Value> Name="Canvas"
<ControlTemplate TargetType="{x:Type Controls:ContainerDragHandle}"> SnapsToDevicePixels="True">
<Canvas Height="13" <Rectangle Height="13"
Width="13" Width="13"
Name="Canvas" RadiusX="2"
SnapsToDevicePixels="True"> RadiusY="2"
<Rectangle Height="13" Fill="#889ABFE5"
Width="13" Name="BorderRectangle"
RadiusX="2" Stroke="#FF7A8FB5"
RadiusY="2" StrokeThickness="1" />
Fill="#889ABFE5" <Path Fill="#FF748EAA"
Name="BorderRectangle" Canvas.Left="1"
Stroke="#FF7A8FB5" Canvas.Top="1">
StrokeThickness="1" /> <Path.Data>
<Path Fill="#FF748EAA" <GeometryGroup>
Canvas.Left="1" <PathGeometry Figures="M5.5,0L3,3L8,3 M11,5.5L8,3L8,8 M5.5,11L3,8L8,8 M0,5.5L3,3L3,8" />
Canvas.Top="1"> <RectangleGeometry Rect="3,5,5,1" />
<Path.Data> <RectangleGeometry Rect="5,3,1,5" />
<GeometryGroup> <RectangleGeometry Rect="5,5,1,1" />
<PathGeometry Figures="M5.5,0L3,3L8,3 M11,5.5L8,3L8,8 M5.5,11L3,8L8,8 M0,5.5L3,3L3,8" /> </GeometryGroup>
<RectangleGeometry Rect="3,5,5,1" /> </Path.Data>
<RectangleGeometry Rect="5,3,1,5" /> </Path>
<RectangleGeometry Rect="5,5,1,1" /> </Canvas>
</GeometryGroup> </ControlTemplate>
</Path.Data> </Setter.Value>
</Path> </Setter>
</Canvas> </Style>
</ControlTemplate>
</Setter.Value> <Style TargetType="{x:Type Controls:WindowClone}">
</Setter> <Setter Property="Width"
</Style> Value="640" />
<Setter Property="Height"
<Style TargetType="{x:Type Controls:WindowClone}"> Value="480" />
<Setter Property="Width" <Setter Property="Template">
Value="640" /> <Setter.Value>
<Setter Property="Height" <ControlTemplate TargetType="{x:Type Controls:WindowClone}">
Value="480" /> <Border Background="{DynamicResource {x:Static SystemColors.GradientActiveCaptionBrushKey}}"
<Setter Property="Template"> BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
<Setter.Value> BorderThickness="1,1,1,1"
<ControlTemplate TargetType="{x:Type Controls:WindowClone}"> CornerRadius="5,5,5,5">
<Border Background="{DynamicResource {x:Static SystemColors.GradientActiveCaptionBrushKey}}" <DockPanel Margin="4,0,4,4">
BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" <DockPanel Height="26"
BorderThickness="1,1,1,1" DockPanel.Dock="Top">
CornerRadius="5,5,5,5"> <Image Width="16"
<DockPanel Margin="4,0,4,4"> Height="16"
<DockPanel Height="26" Margin="1,0,0,0"
DockPanel.Dock="Top"> Source="{TemplateBinding Window.Icon}" />
<Image Width="16" <Button Name="CloseButton"
Height="16" VerticalAlignment="Top"
Margin="1,0,0,0" Width="43"
Source="{TemplateBinding Window.Icon}" /> Height="17"
<Button Name="CloseButton" DockPanel.Dock="Right">
VerticalAlignment="Top" <Path Fill="#FFF6F2F2"
Width="43" Stretch="Uniform"
Height="17" Margin="1"
DockPanel.Dock="Right"> Stroke="#FF808080"
<Path Fill="#FFF6F2F2" 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" />
Stretch="Uniform" </Button>
Margin="1" <Button Name="MaximiseButton"
Stroke="#FF808080" VerticalAlignment="Top"
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" /> Width="25"
</Button> Height="17"
<Button Name="MaximiseButton" DockPanel.Dock="Right" />
VerticalAlignment="Top" <Button Name="MinimizeButton"
Width="25" VerticalAlignment="Top"
Height="17" Width="25"
DockPanel.Dock="Right" /> Height="17"
<Button Name="MinimizeButton" DockPanel.Dock="Right">
VerticalAlignment="Top" <!--<Rectangle Fill="#FFF6F2F2" RadiusX="0.5" RadiusY="0.5" Width="12" Height="5" Stroke="#FF808080" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>-->
Width="25" </Button>
Height="17" <Label Margin="4,0,0,0"
DockPanel.Dock="Right"> Content="{TemplateBinding Window.Title}" />
<!--<Rectangle Fill="#FFF6F2F2" RadiusX="0.5" RadiusY="0.5" Width="12" Height="5" Stroke="#FF808080" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>--> </DockPanel>
</Button> <Border Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}">
<Label Margin="4,0,0,0" <Border BorderBrush="{TemplateBinding Border.BorderBrush}"
Content="{TemplateBinding Window.Title}" /> BorderThickness="{TemplateBinding Border.BorderThickness}"
</DockPanel> Background="{TemplateBinding Panel.Background}">
<Border Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"> <AdornerDecorator>
<Border BorderBrush="{TemplateBinding Border.BorderBrush}" <ContentPresenter ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
BorderThickness="{TemplateBinding Border.BorderThickness}" Content="{TemplateBinding ContentControl.Content}" />
Background="{TemplateBinding Panel.Background}"> </AdornerDecorator>
<AdornerDecorator> </Border>
<ContentPresenter ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" </Border>
Content="{TemplateBinding ContentControl.Content}" /> </DockPanel>
</AdornerDecorator> </Border>
</Border> </ControlTemplate>
</Border> </Setter.Value>
</DockPanel> </Setter>
</Border> </Style>
</ControlTemplate>
</Setter.Value> <Style TargetType="{x:Type Controls:ErrorBalloon}">
</Setter> <Setter Property="WindowStyle"
</Style> Value="None" />
<Setter Property="AllowsTransparency"
<Style TargetType="{x:Type Controls:ErrorBalloon}"> Value="True" />
<Setter Property="WindowStyle" <Setter Property="SizeToContent"
Value="None" /> Value="WidthAndHeight" />
<Setter Property="AllowsTransparency" <Setter Property="ShowInTaskbar"
Value="True" /> Value="False" />
<Setter Property="SizeToContent" <Setter Property="Template">
Value="WidthAndHeight" /> <Setter.Value>
<Setter Property="ShowInTaskbar" <ControlTemplate TargetType="{x:Type Controls:ErrorBalloon}">
Value="False" /> <Grid x:Name="LayoutRoot">
<Setter Property="Template"> <Grid.ColumnDefinitions>
<Setter.Value> <ColumnDefinition Width="*" />
<ControlTemplate TargetType="{x:Type Controls:ErrorBalloon}"> </Grid.ColumnDefinitions>
<Grid x:Name="LayoutRoot"> <Rectangle RadiusX="10"
<Grid.ColumnDefinitions> RadiusY="10"
<ColumnDefinition Width="*" /> Margin="12,36,4,4">
</Grid.ColumnDefinitions> <Rectangle.Fill>
<Rectangle RadiusX="10" <SolidColorBrush Color="#41626262" />
RadiusY="10" </Rectangle.Fill>
Margin="12,36,4,4"> </Rectangle>
<Rectangle.Fill> <Border Margin="8,32,8,8"
<SolidColorBrush Color="#41626262" /> Background="{DynamicResource {x:Static SystemColors.InfoBrushKey}}"
</Rectangle.Fill> BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
</Rectangle> BorderThickness="1,1,1,1"
<Border Margin="8,32,8,8" CornerRadius="10,10,10,10"
Background="{DynamicResource {x:Static SystemColors.InfoBrushKey}}" Padding="10,10,10,10">
BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" <Border BorderBrush="{TemplateBinding Border.BorderBrush}"
BorderThickness="1,1,1,1" BorderThickness="{TemplateBinding Border.BorderThickness}"
CornerRadius="10,10,10,10" Background="{TemplateBinding Panel.Background}">
Padding="10,10,10,10"> <AdornerDecorator>
<Border BorderBrush="{TemplateBinding Border.BorderBrush}" <ContentPresenter ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
BorderThickness="{TemplateBinding Border.BorderThickness}" Content="{TemplateBinding ContentControl.Content}" />
Background="{TemplateBinding Panel.Background}"> </AdornerDecorator>
<AdornerDecorator> </Border>
<ContentPresenter ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" </Border>
Content="{TemplateBinding ContentControl.Content}" /> <Path Fill="{DynamicResource {x:Static SystemColors.InfoBrushKey}}"
</AdornerDecorator> Stretch="Fill"
</Border> HorizontalAlignment="Left"
</Border> Margin="34.75,9.25,0,0"
<Path Fill="{DynamicResource {x:Static SystemColors.InfoBrushKey}}" VerticalAlignment="Top"
Stretch="Fill" Width="15.25"
HorizontalAlignment="Left" Height="24.5"
Margin="34.75,9.25,0,0" Data="M34.75,33.75 L40.5,9.25 50,33.5 z" />
VerticalAlignment="Top" <Path Stretch="Fill"
Width="15.25" Stroke="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
Height="24.5" HorizontalAlignment="Left"
Data="M34.75,33.75 L40.5,9.25 50,33.5 z" /> Margin="34.5,9.25,0,0"
<Path Stretch="Fill" VerticalAlignment="Top"
Stroke="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" Width="16"
HorizontalAlignment="Left" Height="24"
Margin="34.5,9.25,0,0" Data="M35,32.75 L40.5,9.25 50,32.75" />
VerticalAlignment="Top" </Grid>
Width="16" </ControlTemplate>
Height="24" </Setter.Value>
Data="M35,32.75 L40.5,9.25 50,32.75" /> </Setter>
</Grid> </Style>
</ControlTemplate>
</Setter.Value> <Style TargetType="{x:Type Controls:GridRailAdorner}">
</Setter> <Setter Property="Template">
</Style> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:GridRailAdorner}">
<Style TargetType="{x:Type Controls:GridRailAdorner}"> <Rectangle Fill="#302020ff" />
<Setter Property="Template"> </ControlTemplate>
<Setter.Value> </Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:GridRailAdorner}"> </Setter>
<Rectangle Fill="#302020ff" /> </Style>
</ControlTemplate>
</Setter.Value> <Style TargetType="{x:Type Controls:GridRowSplitterAdorner}">
</Setter> <Setter Property="Template">
</Style> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:GridRowSplitterAdorner}">
<Style TargetType="{x:Type Controls:GridRowSplitterAdorner}"> <Grid Height="{x:Static Controls:GridRailAdorner.SplitterWidth}">
<Setter Property="Template"> <Grid.ColumnDefinitions>
<Setter.Value> <ColumnDefinition Width="10" />
<ControlTemplate TargetType="{x:Type Controls:GridRowSplitterAdorner}"> <!-- 10=RailSize -->
<Grid Height="{x:Static Controls:GridRailAdorner.SplitterWidth}"> <ColumnDefinition Width="*" />
<Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<ColumnDefinition Width="10" /> <!-- put a transparent rectangle in the rail so the user does not have to hit the small railHandle -->
<!-- 10=RailSize --> <Rectangle Fill="Transparent" />
<ColumnDefinition Width="*" /> <Path Name="railHandle"
</Grid.ColumnDefinitions> Fill="#FFE6E6FF"
<!-- put a transparent rectangle in the rail so the user does not have to hit the small railHandle --> Stretch="Fill"
<Rectangle Fill="Transparent" /> Stroke="#FF584FFF"
<Path Name="railHandle" Data="M0,0 L0,1 1,0.5 z" />
Fill="#FFE6E6FF" <Path Name="line"
Stretch="Fill" Stretch="Fill"
Stroke="#FF584FFF" Stroke="#FF584FFF"
Data="M0,0 L0,1 1,0.5 z" /> Grid.Column="2"
<Path Name="line" Margin="-1 0 0 0"
Stretch="Fill" Data="M0,0.5 L1,0.5" />
Stroke="#FF584FFF" </Grid>
Grid.Column="2" <ControlTemplate.Triggers>
Margin="-1 0 0 0" <Trigger Property="IsMouseOver"
Data="M0,0.5 L1,0.5" /> Value="True">
</Grid> <Setter TargetName="railHandle"
<ControlTemplate.Triggers> Property="Fill"
<Trigger Property="IsMouseOver" Value="#FFFFB74F" />
Value="True"> </Trigger>
<Setter TargetName="railHandle" <Trigger Property="IsPreview"
Property="Fill" Value="True">
Value="#FFFFB74F" /> <Setter TargetName="railHandle"
</Trigger> Property="Stroke"
<Trigger Property="IsPreview" Value="#D0FFB74F" />
Value="True"> <Setter TargetName="line"
<Setter TargetName="railHandle" Property="Stroke"
Property="Stroke" Value="#D0FFB74F" />
Value="#D0FFB74F" /> </Trigger>
<Setter TargetName="line" </ControlTemplate.Triggers>
Property="Stroke" </ControlTemplate>
Value="#D0FFB74F" /> </Setter.Value>
</Trigger> </Setter>
</ControlTemplate.Triggers> </Style>
</ControlTemplate>
</Setter.Value> <Style TargetType="{x:Type Controls:GridColumnSplitterAdorner}">
</Setter> <Setter Property="Template">
</Style> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:GridColumnSplitterAdorner}">
<Style TargetType="{x:Type Controls:GridColumnSplitterAdorner}"> <Grid Width="{x:Static Controls:GridRailAdorner.SplitterWidth}">
<Setter Property="Template"> <Grid.RowDefinitions>
<Setter.Value> <RowDefinition Height="10" />
<ControlTemplate TargetType="{x:Type Controls:GridColumnSplitterAdorner}"> <!-- 10=RailSize -->
<Grid Width="{x:Static Controls:GridRailAdorner.SplitterWidth}"> <RowDefinition Height="*" />
<Grid.RowDefinitions> </Grid.RowDefinitions>
<RowDefinition Height="10" /> <!-- put a transparent rectangle in the rail so the user does not have to hit the small railHandle -->
<!-- 10=RailSize --> <Rectangle Fill="Transparent" />
<RowDefinition Height="*" /> <Path Name="railHandle"
</Grid.RowDefinitions> Fill="#FFE6E6FF"
<!-- put a transparent rectangle in the rail so the user does not have to hit the small railHandle --> Stretch="Fill"
<Rectangle Fill="Transparent" /> Stroke="#FF584FFF"
<Path Name="railHandle" Data="M0,0 L1,0 0.5,1 z" />
Fill="#FFE6E6FF" <Path Name="line"
Stretch="Fill" Stretch="Fill"
Stroke="#FF584FFF" Stroke="#FF584FFF"
Data="M0,0 L1,0 0.5,1 z" /> Grid.Row="2"
<Path Name="line" Margin="0 -1 0 0"
Stretch="Fill" Data="M0.5,0 L0.5,1" />
Stroke="#FF584FFF" </Grid>
Grid.Row="2" <ControlTemplate.Triggers>
Margin="0 -1 0 0" <Trigger Property="IsMouseOver"
Data="M0.5,0 L0.5,1" /> Value="True">
</Grid> <Setter TargetName="railHandle"
<ControlTemplate.Triggers> Property="Fill"
<Trigger Property="IsMouseOver" Value="#FFFFB74F" />
Value="True"> </Trigger>
<Setter TargetName="railHandle" <Trigger Property="IsPreview"
Property="Fill" Value="True">
Value="#FFFFB74F" /> <Setter TargetName="railHandle"
</Trigger> Property="Stroke"
<Trigger Property="IsPreview" Value="#D0FFB74F" />
Value="True"> <Setter TargetName="line"
<Setter TargetName="railHandle" Property="Stroke"
Property="Stroke" Value="#D0FFB74F" />
Value="#D0FFB74F" /> </Trigger>
<Setter TargetName="line" </ControlTemplate.Triggers>
Property="Stroke" </ControlTemplate>
Value="#D0FFB74F" /> </Setter.Value>
</Trigger> </Setter>
</ControlTemplate.Triggers> </Style>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary> </ResourceDictionary>

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

@ -22,8 +22,8 @@ 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