Files
aistudio-wpf-diagram/Extensions/AIStudio.Wpf.Mind/Themes/MindNode.xaml

136 lines
8.4 KiB
Plaintext
Raw Normal View History

2023-02-12 21:30:16 +08:00
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram"
2023-03-11 12:40:44 +08:00
xmlns:viewmodel="clr-namespace:AIStudio.Wpf.Mind.ViewModels"
xmlns:controls="clr-namespace:AIStudio.Wpf.Mind.Controls">
2023-02-12 21:30:16 +08:00
<dd:ColorBrushConverter x:Key="ColorBrushConverter"/>
<dd:DoubleToCornerRadius x:Key="DoubleToCornerRadius"/>
2023-02-19 21:38:28 +08:00
<dd:IntToVisibilityConverter x:Key="IntToVisibilityConverter"/>
2023-02-21 19:47:46 +08:00
<dd:DoubleToThickness x:Key="DoubleToThickness"/>
2023-03-15 19:35:53 +08:00
<dd:NullableToVisibilityConverter x:Key="NullableToVisibilityConverter"/>
2023-03-19 12:38:08 +08:00
<dd:NotNullOrEmptyToBoolConverter x:Key="NotNullOrEmptyToBoolConverter"/>
2023-02-19 21:38:28 +08:00
<!-- Toggle Button -->
<Style x:Key="ExpandCollapseToggleStyle" TargetType="ToggleButton">
<Setter Property="Focusable" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Grid Width="17" Height="17" SnapsToDevicePixels="True">
<Rectangle Width="13" Height="13" Stroke="Gray" RadiusX="6" RadiusY="6" SnapsToDevicePixels="true">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,2" StartPoint="0.5,0">
<GradientStop Color="White" Offset="0"/>
<GradientStop Color="Silver" Offset="0.5"/>
<GradientStop Color="LightGray" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<Rectangle x:Name="ExpandPath" Width="1" Height="9" Stroke="Gray" SnapsToDevicePixels="true" />
<Rectangle Width="9" Height="1" Stroke="Gray" SnapsToDevicePixels="true"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Visibility" TargetName="ExpandPath" Value="Collapsed"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
2023-03-05 21:30:53 +08:00
<ControlTemplate x:Key="MindNodeLevelStyle" TargetType="{x:Type ContentControl}">
<Grid>
2023-03-05 21:30:53 +08:00
<Grid.ContextMenu>
<ContextMenu ItemsSource="{Binding MenuOptions}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="MenuItem.Header" Value="{Binding Text}" />
<Setter Property="MenuItem.ItemsSource" Value="{Binding Children}" />
<Setter Property="MenuItem.Command" Value="{Binding Command}" />
<Setter Property="MenuItem.Icon" Value="{Binding Icon}" />
<Setter Property="CommandParameter" Value="{Binding CommandParameter}" />
<Setter Property="MenuItem.IsCheckable" Value="{Binding IsCheckable}" />
<Setter Property="MenuItem.IsChecked" Value="{Binding IsChecked}" />
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
2023-03-15 23:05:41 +08:00
</Grid.ContextMenu>
2023-03-11 12:40:44 +08:00
<Grid>
2023-03-05 21:30:53 +08:00
<Border BorderThickness="{Binding BorderThickness}"
BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"
2023-03-18 21:44:58 +08:00
CornerRadius="{Binding CornerRadius}"
IsHitTestVisible="False">
2023-03-18 21:44:58 +08:00
</Border>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
2023-04-04 22:42:09 +08:00
<Image x:Name="image" Margin="5,10,5,5" Stretch="Fill" Width="128" Height="128"
2023-03-26 23:23:34 +08:00
Visibility="{Binding ImageInfo,Converter={StaticResource NullableToVisibilityConverter}}"
2023-03-19 12:38:08 +08:00
ToolTip="{Binding ImageInfo.Text}"
IsHitTestVisible="False"/>
2023-03-18 21:44:58 +08:00
<Grid Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<controls:RateControl Grid.Column="0" Rate="{Binding Rate}"
Visibility="{Binding Rate,Converter={StaticResource NullableToVisibilityConverter}}"
IsHitTestVisible="False"/>
<controls:PriorityControl Grid.Column="1" Priority="{Binding Priority}"
Visibility="{Binding Priority,Converter={StaticResource NullableToVisibilityConverter}}"
IsHitTestVisible="False"/>
<dd:TextControl Grid.Column="2" IsHitTestVisible="{Binding IsEditing}" AcceptsReturn="False">
2023-05-14 00:31:25 +08:00
</dd:TextControl>
2023-03-18 21:44:58 +08:00
<controls:LinkControl Grid.Column="3"
2023-03-26 23:23:34 +08:00
Visibility="{Binding LinkInfo,Converter={StaticResource NullableToVisibilityConverter}}"
2023-03-18 22:50:00 +08:00
Url="{Binding LinkInfo.Link}"
2023-03-18 21:44:58 +08:00
ToolTip="{Binding LinkInfo.Text}" />
<controls:RemarkControl Grid.Column="4"
Visibility="{Binding Remark,Converter={StaticResource NullableToVisibilityConverter}}"
ToolTip="{Binding Remark}"/>
<controls:TagControl Grid.Column="5" IsHitTestVisible="False" ItemsSource="{Binding Tags}"/>
2023-03-11 12:40:44 +08:00
</Grid>
2023-03-18 21:44:58 +08:00
</Grid>
2023-03-05 21:30:53 +08:00
</Grid>
<ToggleButton x:Name="toggle" IsChecked="{Binding IsExpanded}" Style="{StaticResource ExpandCollapseToggleStyle}" HorizontalAlignment="Left" Margin="-15,0,0,0" Visibility="{Binding Children.Count,Converter={StaticResource IntToVisibilityConverter}}"/>
</Grid>
<ControlTemplate.Triggers>
2023-03-19 12:38:08 +08:00
<DataTrigger Binding="{Binding ImageInfo.Url,Converter={StaticResource NotNullOrEmptyToBoolConverter}}" Value="true">
<Setter TargetName="image" Property="Source" Value="{Binding ImageInfo.Url}"/>
</DataTrigger>
2023-03-05 21:30:53 +08:00
<DataTrigger Binding="{Binding ConnectorOrientation}" Value="None">
<Setter TargetName="toggle" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding ConnectorOrientation}" Value="Right">
<Setter TargetName="toggle" Property="HorizontalAlignment" Value="Right"/>
<Setter TargetName="toggle" Property="Margin" Value="0,0,-15,0"/>
</DataTrigger>
<DataTrigger Binding="{Binding ConnectorOrientation}" Value="Top">
<Setter TargetName="toggle" Property="HorizontalAlignment" Value="Center"/>
<Setter TargetName="toggle" Property="VerticalAlignment" Value="Top"/>
<Setter TargetName="toggle" Property="Margin" Value="0,-15,0,0"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
2023-02-19 21:38:28 +08:00
<Style x:Key="MindNodeStyle" TargetType="{x:Type ContentControl}">
2023-03-05 21:30:53 +08:00
<Setter Property="Template" Value="{StaticResource MindNodeLevelStyle}" />
2023-02-19 21:38:28 +08:00
</Style>
2023-02-12 21:30:16 +08:00
2023-02-19 21:38:28 +08:00
<DataTemplate DataType="{x:Type viewmodel:MindNode}">
2023-02-19 22:56:47 +08:00
<Grid>
2023-02-19 21:38:28 +08:00
<ContentControl Style="{StaticResource MindNodeStyle}"/>
</Grid>
</DataTemplate>
2023-02-12 21:30:16 +08:00
</ResourceDictionary>