feat: unify layer update code.

This commit is contained in:
rabbitism
2024-01-24 11:32:07 +08:00
parent 564a53409e
commit a174f0cd85
2 changed files with 43 additions and 32 deletions

View File

@@ -4,7 +4,7 @@
xmlns:u="https://irihi.tech/ursa"> xmlns:u="https://irihi.tech/ursa">
<!-- Add Resources Here --> <!-- Add Resources Here -->
<ControlTheme x:Key="{x:Type u:OverlayDialogHost}" TargetType="u:OverlayDialogHost"> <ControlTheme x:Key="{x:Type u:OverlayDialogHost}" TargetType="u:OverlayDialogHost">
<Setter Property="OverlayMaskBrush" Value="{DynamicResource OverlayDialogMaskBrush}"></Setter> <Setter Property="OverlayMaskBrush" Value="{DynamicResource OverlayDialogMaskBrush}" />
</ControlTheme> </ControlTheme>
<ControlTheme x:Key="{x:Type u:DialogControl}" TargetType="u:DialogControl"> <ControlTheme x:Key="{x:Type u:DialogControl}" TargetType="u:DialogControl">
<Setter Property="Template"> <Setter Property="Template">
@@ -25,16 +25,15 @@
Name="{x:Static u:DialogControl.PART_TitleArea}" Name="{x:Static u:DialogControl.PART_TitleArea}"
Grid.Column="0" Grid.Column="0"
Grid.ColumnSpan="2" Grid.ColumnSpan="2"
Background="Transparent" > Background="Transparent" />
</Panel>
<TextBlock <TextBlock
Grid.Column="0" Grid.Column="0"
Margin="8,8,0,0" Margin="8,8,0,0"
DockPanel.Dock="Left"
Text="{TemplateBinding Title}"
Classes="Strong" Classes="Strong"
IsVisible="{TemplateBinding Title, Converter={x:Static ObjectConverters.IsNotNull}}" DockPanel.Dock="Left"
/> IsVisible="{TemplateBinding Title,
Converter={x:Static ObjectConverters.IsNotNull}}"
Text="{TemplateBinding Title}" />
<Button <Button
Name="{x:Static u:MessageBoxWindow.PART_CloseButton}" Name="{x:Static u:MessageBoxWindow.PART_CloseButton}"
Grid.Column="1" Grid.Column="1"
@@ -53,24 +52,48 @@
<Style Selector="^:not(:modal) /template/ Panel#PART_TitleArea"> <Style Selector="^:not(:modal) /template/ Panel#PART_TitleArea">
<Setter Property="ContextFlyout"> <Setter Property="ContextFlyout">
<MenuFlyout> <MenuFlyout>
<MenuItem Header="Bring Forward" Command="{Binding $parent[u:DialogControl].BringForward}"> <MenuItem
Command="{Binding $parent[u:DialogControl].UpdateLayer}"
CommandParameter="{x:Static u:DialogLayerChangeType.BringForward}"
Header="Bring Forward">
<MenuItem.Icon> <MenuItem.Icon>
<PathIcon Width="12" Height="12" Data="{DynamicResource DialogArrangeBringForwardGlyph}"></PathIcon> <PathIcon
Width="12"
Height="12"
Data="{DynamicResource DialogArrangeBringForwardGlyph}" />
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
<MenuItem Header="Bring To Front" Command="{Binding $parent[u:DialogControl].BringToFront}"> <MenuItem
Command="{Binding $parent[u:DialogControl].UpdateLayer}"
CommandParameter="{x:Static u:DialogLayerChangeType.BringToFront}"
Header="Bring To Front">
<MenuItem.Icon> <MenuItem.Icon>
<PathIcon Width="12" Height="12" Data="{DynamicResource DialogArrangeBringToFrontGlyph}"></PathIcon> <PathIcon
Width="12"
Height="12"
Data="{DynamicResource DialogArrangeBringToFrontGlyph}" />
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
<MenuItem Header="Send Backward" Command="{Binding $parent[u:DialogControl].SendBackward}" > <MenuItem
Command="{Binding $parent[u:DialogControl].UpdateLayer}"
CommandParameter="{x:Static u:DialogLayerChangeType.SendBackward}"
Header="Send Backward">
<MenuItem.Icon> <MenuItem.Icon>
<PathIcon Width="12" Height="12" Data="{DynamicResource DialogArrangeSendBackwardGlyph}"></PathIcon> <PathIcon
Width="12"
Height="12"
Data="{DynamicResource DialogArrangeSendBackwardGlyph}" />
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
<MenuItem Header="Send To Back" Command="{Binding $parent[u:DialogControl].SendToBack}"> <MenuItem
Command="{Binding $parent[u:DialogControl].UpdateLayer}"
CommandParameter="{x:Static u:DialogLayerChangeType.SendToBack}"
Header="Send To Back">
<MenuItem.Icon> <MenuItem.Icon>
<PathIcon Width="12" Height="12" Data="{DynamicResource DialogArrangeSendToBackGlyph}"></PathIcon> <PathIcon
Width="12"
Height="12"
Data="{DynamicResource DialogArrangeSendToBackGlyph}" />
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
</MenuFlyout> </MenuFlyout>

View File

@@ -127,23 +127,11 @@ public class DialogControl: ContentControl
} }
} }
public void BringForward() public void UpdateLayer(object? o)
{ {
OnLayerChange?.Invoke(this, new DialogLayerChangeEventArgs(DialogLayerChangeType.BringForward)); if (o is DialogLayerChangeType t)
}
public void SendBackward()
{ {
OnLayerChange?.Invoke(this, new DialogLayerChangeEventArgs(DialogLayerChangeType.SendBackward)); OnLayerChange?.Invoke(this, new DialogLayerChangeEventArgs(t));
} }
public void BringToFront()
{
OnLayerChange?.Invoke(this, new DialogLayerChangeEventArgs(DialogLayerChangeType.BringToFront));
}
public void SendToBack()
{
OnLayerChange?.Invoke(this, new DialogLayerChangeEventArgs(DialogLayerChangeType.SendToBack));
} }
} }