Skip to content

Commit 3653eaa

Browse files
Add Placement Property to DialogHost (#2533)
1 parent c62bed4 commit 3653eaa

File tree

3 files changed

+42
-0
lines changed

3 files changed

+42
-0
lines changed

MainDemo.Wpf/Dialogs.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@
242242
Grid.Column="3"
243243
Grid.Row="1" >
244244
<materialDesign:DialogHost
245+
Placement="Mouse"
245246
VerticalAlignment="Center"
246247
IsOpen="{Binding IsSample4DialogOpen}"
247248
DialogContent="{Binding Sample4Content}"

MaterialDesignThemes.Wpf/DialogHost.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,15 @@ public bool IsOpen
365365
set => SetValue(IsOpenProperty, value);
366366
}
367367

368+
public static readonly DependencyProperty PlacementProperty = DependencyProperty.Register(
369+
nameof(Placement), typeof(PlacementMode), typeof(DialogHost), new PropertyMetadata(PlacementMode.Center));
370+
371+
public PlacementMode Placement
372+
{
373+
get => (PlacementMode)GetValue(PlacementProperty);
374+
set => SetValue(PlacementProperty, value);
375+
}
376+
368377
public static readonly DependencyProperty DialogContentProperty = DependencyProperty.Register(
369378
nameof(DialogContent), typeof(object), typeof(DialogHost), new PropertyMetadata(default(object)));
370379

MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DialogHost.xaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@
139139
</VisualStateGroup>
140140
</VisualStateManager.VisualStateGroups>
141141
<wpf:PopupEx PlacementTarget="{Binding ElementName=DialogHostRoot, Mode=OneWay}"
142+
Placement="{TemplateBinding Placement}"
142143
x:Name="PART_Popup"
143144
Style="{TemplateBinding PopupStyle}"
144145
wpf:ThemeAssist.Theme="{TemplateBinding DialogTheme}">
@@ -218,6 +219,7 @@
218219
<Style x:Key="MaterialDesignEmbeddedDialogHost" TargetType="{x:Type wpf:DialogHost}">
219220
<Setter Property="DialogMargin" Value="35" />
220221
<Setter Property="wpf:ShadowAssist.ShadowDepth" Value="Depth5" />
222+
<Setter Property="Placement" Value="Center" />
221223
<Setter Property="HorizontalContentAlignment" Value="Center" />
222224
<Setter Property="VerticalContentAlignment" Value="Center" />
223225
<Setter Property="Template">
@@ -408,5 +410,35 @@
408410
</ControlTemplate>
409411
</Setter.Value>
410412
</Setter>
413+
<Style.Triggers>
414+
<Trigger Property="Placement" Value="Center">
415+
<Setter Property="HorizontalContentAlignment" Value="Center"/>
416+
<Setter Property="VerticalContentAlignment" Value="Center"/>
417+
</Trigger>
418+
<Trigger Property="Placement" Value="Left">
419+
<Setter Property="HorizontalContentAlignment" Value="Left"/>
420+
<Setter Property="VerticalContentAlignment" Value="Center"/>
421+
</Trigger>
422+
<Trigger Property="Placement" Value="Top">
423+
<Setter Property="HorizontalContentAlignment" Value="Center"/>
424+
<Setter Property="VerticalContentAlignment" Value="Top"/>
425+
</Trigger>
426+
<Trigger Property="Placement" Value="Right">
427+
<Setter Property="HorizontalContentAlignment" Value="Right"/>
428+
<Setter Property="VerticalContentAlignment" Value="Center"/>
429+
</Trigger>
430+
<Trigger Property="Placement" Value="Bottom">
431+
<Setter Property="HorizontalContentAlignment" Value="Center"/>
432+
<Setter Property="VerticalContentAlignment" Value="Bottom"/>
433+
</Trigger>
434+
<Trigger Property="Placement" Value="Absolute">
435+
<Setter Property="HorizontalContentAlignment" Value="Left"/>
436+
<Setter Property="VerticalContentAlignment" Value="Top"/>
437+
</Trigger>
438+
<Trigger Property="Placement" Value="AbsolutePoint">
439+
<Setter Property="HorizontalContentAlignment" Value="Left"/>
440+
<Setter Property="VerticalContentAlignment" Value="Top"/>
441+
</Trigger>
442+
</Style.Triggers>
411443
</Style>
412444
</ResourceDictionary>

0 commit comments

Comments
 (0)