Files
aistudio-wpf-diagram/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml

108 lines
7.5 KiB
Plaintext
Raw Normal View History

<UserControl x:Class="AIStudio.Wpf.DiagramDesigner.DiagramControl"
2021-07-23 09:42:22 +08:00
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
2023-03-05 21:30:53 +08:00
xmlns:dd="clr-namespace:AIStudio.Wpf.DiagramDesigner"
2022-10-28 22:45:39 +08:00
xmlns:c="clr-namespace:AIStudio.Wpf.DiagramDesigner.Controls"
2021-07-23 09:42:22 +08:00
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
mc:Ignorable="d" HorizontalAlignment="Center" VerticalAlignment="Center"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
2021-07-23 09:42:22 +08:00
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/AIStudio.Wpf.DiagramDesigner;component/Themes/DiagramControl.xaml" />
2021-07-23 09:42:22 +08:00
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
2023-02-14 22:54:55 +08:00
</UserControl.Resources>
2023-04-15 21:55:27 +08:00
<Grid>
2023-02-14 22:54:55 +08:00
<Control x:Name="control">
<Control.Style>
<Style TargetType="Control">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<ItemsControl ItemsSource="{Binding Items}"
2023-03-12 15:26:58 +08:00
ItemContainerStyleSelector="{x:Static dd:DesignerItemsControlItemStyleSelector.Instance}">
2023-02-14 22:54:55 +08:00
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
2023-03-05 21:30:53 +08:00
<dd:DesignerCanvas
Height="{Binding DiagramOption.LayoutOption.PageSize.Height}"
Width="{Binding DiagramOption.LayoutOption.PageSize.Width}"
ShowGrid="{Binding DiagramOption.LayoutOption.ShowGrid}"
GridCellSize="{Binding DiagramOption.LayoutOption.GridCellSize}"
GridMarginSize="{Binding DiagramOption.LayoutOption.GridMarginSize}"
GridColor="{Binding DiagramOption.LayoutOption.GridColor}"
Background="{Binding DiagramOption.LayoutOption.PageBackground,Converter={StaticResource ColorBrushConverter}}"
AllowDrop="{Binding DiagramOption.LayoutOption.AllowDrop}">
2023-03-05 21:30:53 +08:00
<dd:DesignerCanvas.LayoutTransform>
2023-02-14 22:54:55 +08:00
<ScaleTransform ScaleX="{Binding ZoomValue}" ScaleY="{Binding ZoomValue}" />
2023-04-15 21:55:27 +08:00
</dd:DesignerCanvas.LayoutTransform>
2023-03-05 21:30:53 +08:00
</dd:DesignerCanvas>
2023-02-14 22:54:55 +08:00
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding DefaultZoomBox}" Value="true">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<ScrollViewer Name="DesignerScrollViewer"
Background="Transparent"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"
Focusable="False">
2023-02-14 22:54:55 +08:00
<ItemsControl x:Name="diagram" ItemsSource="{Binding Items}"
2023-03-12 15:26:58 +08:00
ItemContainerStyleSelector="{x:Static dd:DesignerItemsControlItemStyleSelector.Instance}">
2023-02-14 22:54:55 +08:00
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
2023-03-05 21:30:53 +08:00
<dd:DesignerCanvas
Height="{Binding DiagramOption.LayoutOption.PageSize.Height}"
Width="{Binding DiagramOption.LayoutOption.PageSize.Width}"
ShowGrid="{Binding DiagramOption.LayoutOption.ShowGrid}"
GridCellSize="{Binding DiagramOption.LayoutOption.GridCellSize}"
GridMarginSize="{Binding DiagramOption.LayoutOption.GridMarginSize}"
GridColor="{Binding DiagramOption.LayoutOption.GridColor}"
Background="{Binding DiagramOption.LayoutOption.PageBackground,Converter={StaticResource ColorBrushConverter}}"
AllowDrop="{Binding DiagramOption.LayoutOption.AllowDrop}">
2023-03-05 21:30:53 +08:00
<dd:DesignerCanvas.LayoutTransform>
2023-02-14 22:54:55 +08:00
<ScaleTransform ScaleX="{Binding ZoomValue}" ScaleY="{Binding ZoomValue}" />
2023-03-05 21:30:53 +08:00
</dd:DesignerCanvas.LayoutTransform>
</dd:DesignerCanvas>
2023-02-14 22:54:55 +08:00
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>
2023-03-05 21:30:53 +08:00
<dd:ZoomBox x:Name="zoomBox"
2023-02-14 22:54:55 +08:00
Width="180"
2023-03-11 12:40:44 +08:00
HorizontalAlignment="Left"
2023-02-14 22:54:55 +08:00
VerticalAlignment="Bottom"
DesignerCanvas="{Binding ElementName=diagram}"
MaximumZoomValue="{Binding MaximumZoomValue,Mode=TwoWay}"
MinimumZoomValue="{Binding MinimumZoomValue,Mode=TwoWay}"
ZoomValue="{Binding ZoomValue,Mode=TwoWay}"
2023-03-12 22:47:45 +08:00
FitViewModel="{Binding FitViewModel}"
Margin="5,0,0,5" />
2023-02-14 22:54:55 +08:00
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Control.Style>
</Control>
2023-04-15 21:55:27 +08:00
</Grid>
2021-07-23 09:42:22 +08:00
</UserControl>