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">
<!-- Add Resources Here -->
<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 x:Key="{x:Type u:DialogControl}" TargetType="u:DialogControl">
<Setter Property="Template">
@@ -25,16 +25,15 @@
Name="{x:Static u:DialogControl.PART_TitleArea}"
Grid.Column="0"
Grid.ColumnSpan="2"
Background="Transparent" >
</Panel>
Background="Transparent" />
<TextBlock
Grid.Column="0"
Margin="8,8,0,0"
DockPanel.Dock="Left"
Text="{TemplateBinding Title}"
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
Name="{x:Static u:MessageBoxWindow.PART_CloseButton}"
Grid.Column="1"
@@ -53,24 +52,48 @@
<Style Selector="^:not(:modal) /template/ Panel#PART_TitleArea">
<Setter Property="ContextFlyout">
<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>
<PathIcon Width="12" Height="12" Data="{DynamicResource DialogArrangeBringForwardGlyph}"></PathIcon>
<PathIcon
Width="12"
Height="12"
Data="{DynamicResource DialogArrangeBringForwardGlyph}" />
</MenuItem.Icon>
</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>
<PathIcon Width="12" Height="12" Data="{DynamicResource DialogArrangeBringToFrontGlyph}"></PathIcon>
<PathIcon
Width="12"
Height="12"
Data="{DynamicResource DialogArrangeBringToFrontGlyph}" />
</MenuItem.Icon>
</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>
<PathIcon Width="12" Height="12" Data="{DynamicResource DialogArrangeSendBackwardGlyph}"></PathIcon>
<PathIcon
Width="12"
Height="12"
Data="{DynamicResource DialogArrangeSendBackwardGlyph}" />
</MenuItem.Icon>
</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>
<PathIcon Width="12" Height="12" Data="{DynamicResource DialogArrangeSendToBackGlyph}"></PathIcon>
<PathIcon
Width="12"
Height="12"
Data="{DynamicResource DialogArrangeSendToBackGlyph}" />
</MenuItem.Icon>
</MenuItem>
</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));
}
public void SendBackward()
{
OnLayerChange?.Invoke(this, new DialogLayerChangeEventArgs(DialogLayerChangeType.SendBackward));
}
public void BringToFront()
{
OnLayerChange?.Invoke(this, new DialogLayerChangeEventArgs(DialogLayerChangeType.BringToFront));
}
public void SendToBack()
{
OnLayerChange?.Invoke(this, new DialogLayerChangeEventArgs(DialogLayerChangeType.SendToBack));
if (o is DialogLayerChangeType t)
{
OnLayerChange?.Invoke(this, new DialogLayerChangeEventArgs(t));
}
}
}