Files
GeekDesk/Control/UserControls/PannelCard/LeftCardControl.xaml

151 lines
8.4 KiB
Plaintext
Raw Normal View History

<UserControl x:Class="GeekDesk.Control.UserControls.PannelCard.LeftCardControl"
2021-05-28 18:01:19 +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"
xmlns:local="clr-namespace:GeekDesk.Control.UserControls.PannelCard"
2021-05-28 18:01:19 +08:00
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:cvt="clr-namespace:GeekDesk.Converts"
xmlns:DraggAnimatedPanel="clr-namespace:DraggAnimatedPanel"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<!--左侧栏样式动画-->
2021-05-31 17:31:16 +08:00
<Style x:Key="MenuStyle" TargetType="ListBoxItem" BasedOn="{StaticResource ListBoxItemBaseStyle}">
<Setter Property="FontSize" Value="16"/>
2021-05-28 18:01:19 +08:00
<Setter Property="Margin" Value="0,0,0,1"/>
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Opacity="0"/>
</Setter.Value>
</Setter>
2021-12-20 10:59:37 +08:00
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
2021-07-19 17:30:34 +08:00
<EventSetter Event="MouseLeftButtonDown" Handler="MenuClick"/>
<EventSetter Event="MouseRightButtonDown" Handler="MenuClick"/>
2021-05-28 18:01:19 +08:00
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="False"/>
<Condition Property="IsSelected" Value="False"/>
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<BeginStoryboard>
<Storyboard Timeline.DesiredFrameRate="60">
<DoubleAnimation To="16" Duration="0:0:0.2" Storyboard.TargetProperty="FontSize"/>
2021-05-28 18:01:19 +08:00
</Storyboard>
</BeginStoryboard>
</MultiTrigger.EnterActions>
<MultiTrigger.ExitActions>
<BeginStoryboard>
<Storyboard Timeline.DesiredFrameRate="60">
<DoubleAnimation To="18" Duration="0:0:0.001" Storyboard.TargetProperty="FontSize"/>
</Storyboard>
</BeginStoryboard>
</MultiTrigger.ExitActions>
</MultiTrigger>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Background" Value="#FFECECEC"/>
<Setter Property="Foreground" Value="Black"/>
</Trigger>
2022-03-25 16:48:27 +08:00
2021-05-28 18:01:19 +08:00
</Style.Triggers>
</Style>
<cvt:MenuWidthConvert x:Key="MenuWidthConvert"/>
<cvt:OpcityConvert x:Key="OpcityConvert"/>
</UserControl.Resources>
2022-03-25 16:48:27 +08:00
<!--左侧栏-->
<hc:Card x:Name="MyCard"
BorderThickness="1"
2021-05-28 18:01:19 +08:00
Effect="{DynamicResource EffectShadow2}"
Margin="5,0,0,5"
>
2022-03-25 16:48:27 +08:00
<hc:Card.Background>
<SolidColorBrush Color="#FFFFFFFF" hc:GeometryEffect.GeometryEffect="20" Opacity="{Binding AppConfig.CardOpacity, Mode=TwoWay, Converter={StaticResource OpcityConvert}}">
</SolidColorBrush>
</hc:Card.Background>
<hc:Card.BorderBrush>
<SolidColorBrush Color="#FFFFFFFF" Opacity="0"/>
</hc:Card.BorderBrush>
<hc:Card.ContextMenu>
<ContextMenu Width="200">
<MenuItem Header="新建菜单" Click="CreateMenu"/>
</ContextMenu>
</hc:Card.ContextMenu>
<WrapPanel Orientation="Horizontal">
<ListBox x:Name="MenuListBox"
Padding="2,3,0,2"
2021-05-28 18:01:19 +08:00
ItemsSource="{Binding MenuList}"
Tag="{Binding AppConfig.MenuCardWidth}"
BorderThickness="0" Foreground="{x:Null}"
SelectedIndex="{Binding AppConfig.SelectedMenuIndex}"
VirtualizingPanel.VirtualizationMode="Recycling"
2021-07-19 17:30:34 +08:00
SelectionChanged="menus_SelectionChanged"
2021-05-28 18:01:19 +08:00
>
2022-03-25 16:48:27 +08:00
<ListBox.Resources>
<ContextMenu x:Key="MenuDialog" Width="200">
<MenuItem Header="新建菜单" Click="CreateMenu"/>
<MenuItem Header="重命名" Click="RenameMenu" Tag="{Binding}"/>
<MenuItem Header="修改图标" Click="EditMenuGeometry" Tag="{Binding}"/>
<MenuItem Header="删除" Click="DeleteMenu" Tag="{Binding}"/>
</ContextMenu>
2022-03-25 16:48:27 +08:00
</ListBox.Resources>
2021-05-28 18:01:19 +08:00
2022-03-25 16:48:27 +08:00
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem" BasedOn="{StaticResource MenuStyle}">
<Setter Property="ContextMenu" Value="{StaticResource MenuDialog}"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.Background>
<SolidColorBrush Color="AliceBlue" Opacity="0"/>
</ListBox.Background>
2021-05-28 18:01:19 +08:00
2022-03-25 16:48:27 +08:00
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<DraggAnimatedPanel:DraggAnimatedPanel ItemsHeight="33" ItemsWidth="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type ListBox},AncestorLevel=1},Path=Tag, Mode=TwoWay, Converter={StaticResource MenuWidthConvert}, ConverterParameter=10}" HorizontalAlignment="Center" VerticalAlignment="Top" SwapCommand="{Binding SwapCommand, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"/>
2022-03-25 16:48:27 +08:00
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
2021-05-28 18:01:19 +08:00
2022-03-25 16:48:27 +08:00
<ListBox.ItemTemplate>
<DataTemplate>
2021-07-12 17:28:57 +08:00
<StackPanel MouseLeftButtonDown="MenuClick" MouseRightButtonDown="MenuClick" Tag="{Binding}">
2022-03-25 16:48:27 +08:00
<TextBox Text="{Binding Path=MenuName, Mode=TwoWay}"
HorizontalAlignment="Left"
Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type ListBox},AncestorLevel=1},Path=Tag, Mode=TwoWay, Converter={StaticResource MenuWidthConvert}, ConverterParameter=35}"
FontSize="16"
2022-03-25 16:48:27 +08:00
Height="28"
VerticalAlignment="Center"
TextAlignment="Left"
LostFocus="LostFocusOrEnterDown"
KeyDown="LostFocusOrEnterDown"
Tag="{Binding}"
2022-03-25 16:48:27 +08:00
Padding="2"
BorderThickness="0"
IsVisibleChanged="MenuEditWhenVisibilityChanged"
Visibility="{Binding MenuEdit}"/>
<StackPanel Orientation="Horizontal">
2022-03-25 16:48:27 +08:00
<Button Background="Transparent"
2021-07-12 17:28:57 +08:00
BorderThickness="0"
2021-07-13 17:29:33 +08:00
hc:IconElement.Geometry="{Binding MenuGeometry}"
2021-07-12 17:28:57 +08:00
hc:IconElement.Height="18"
hc:IconElement.Width="18"
2021-07-13 17:29:33 +08:00
IsEnabled="False"
Opacity="1"
Foreground="{Binding GeometryColor}"
2021-07-12 17:28:57 +08:00
/>
2022-03-25 16:48:27 +08:00
<TextBlock Text="{Binding MenuName}"
2021-07-12 17:28:57 +08:00
HorizontalAlignment="Center"
TextAlignment="Center"
VerticalAlignment="Center"
IsVisibleChanged="MenuWhenVisibilityChanged"
Visibility="{Binding NotMenuEdit}"
/>
2021-05-28 18:01:19 +08:00
</StackPanel>
2022-03-25 16:48:27 +08:00
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</WrapPanel>
</hc:Card>
</UserControl>