Move dialog host control to top level as content of window, return back DialogHost demo
This commit is contained in:
@@ -3,11 +3,12 @@
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:styles="clr-namespace:Material.Styles;assembly=Material.Styles"
|
||||
xmlns:pages="clr-namespace:Material.Demo.Pages"
|
||||
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
|
||||
xmlns:showMeTheXaml="clr-namespace:ShowMeTheXaml;assembly=ShowMeTheXaml.Avalonia"
|
||||
xmlns:controls="clr-namespace:Material.Styles.Controls;assembly=Material.Styles"
|
||||
xmlns:dialogHostAvalonia="clr-namespace:DialogHostAvalonia;assembly=DialogHost.Avalonia"
|
||||
xmlns:models="clr-namespace:Material.Demo.Models"
|
||||
mc:Ignorable="d" WindowStartupLocation="CenterScreen"
|
||||
Width="1280" Height="720" MinWidth="720"
|
||||
Title="Material.Demo">
|
||||
@@ -29,6 +30,22 @@
|
||||
<Setter Property="HorizontalAlignment" Value="Left" />
|
||||
</Style>
|
||||
</Window.Styles>
|
||||
|
||||
<dialogHostAvalonia:DialogHost Identifier="MainDialogHost" >
|
||||
<dialogHostAvalonia:DialogHost.DialogContentTemplate>
|
||||
<DataTemplate DataType="models:Sample2Model" >
|
||||
<StackPanel>
|
||||
<TextBlock TextAlignment="Center" >Your lucky number:</TextBlock>
|
||||
<TextBlock Classes="Body1"
|
||||
TextAlignment="Center"
|
||||
Text="{Binding Number}" />
|
||||
<Button Margin="0 8 0 0"
|
||||
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=dialogHostAvalonia:DialogHost}, Path=CloseDialogCommand}" >
|
||||
THANKS, CLOSE
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</dialogHostAvalonia:DialogHost.DialogContentTemplate>
|
||||
|
||||
<controls:SnackbarHost HostName="Root" TemplateApplied="TemplatedControl_OnTemplateApplied">
|
||||
<controls:NavigationDrawer Name="LeftDrawer" Classes="permanent"
|
||||
@@ -200,4 +217,8 @@
|
||||
</DockPanel>
|
||||
</controls:NavigationDrawer>
|
||||
</controls:SnackbarHost>
|
||||
</dialogHostAvalonia:DialogHost>
|
||||
|
||||
|
||||
|
||||
</Window>
|
||||
@@ -1,11 +1,11 @@
|
||||
<UserControl xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:viewModels="clr-namespace:Material.Demo.ViewModels"
|
||||
xmlns:dialogHost="clr-namespace:DialogHost;assembly=DialogHost.Avalonia"
|
||||
xmlns:models="clr-namespace:Material.Demo.Models"
|
||||
xmlns:dialogHost="clr-namespace:DialogHostAvalonia;assembly=DialogHost.Avalonia"
|
||||
x:Class="Material.Demo.Pages.DialogDemo"
|
||||
x:DataType="viewModels:DialogDemoViewModel">
|
||||
x:DataType="viewModels:DialogDemoViewModel" >
|
||||
<UserControl.Resources>
|
||||
<!-- ReSharper disable once Xaml.RedundantResource -->
|
||||
<StackPanel x:Key="Sample2View">
|
||||
<ProgressBar Classes="Circle" IsIndeterminate="True" />
|
||||
<Button Margin="0 16 0 0"
|
||||
@@ -14,106 +14,51 @@
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</UserControl.Resources>
|
||||
<!--dialogHost:DialogHost Identifier="MainDialogHost">
|
||||
<dialogHost:DialogHost.DialogContentTemplate>
|
||||
<DataTemplate DataType="models:Sample2Model">
|
||||
<StackPanel>
|
||||
<TextBlock TextAlignment="Center">Your lucky number:</TextBlock>
|
||||
<TextBlock Classes="Body1"
|
||||
TextAlignment="Center"
|
||||
Text="{Binding Number}" />
|
||||
<Button Margin="0 8 0 0"
|
||||
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=dialogHost:DialogHost}, Path=CloseDialogCommand}">
|
||||
THANKS, CLOSE
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</dialogHost:DialogHost.DialogContentTemplate>
|
||||
<StackPanel Margin="16, 0">
|
||||
<TextBlock Classes="Headline4 Subheadline" Text="Dialogs" />
|
||||
|
||||
<WrapPanel>
|
||||
<WrapPanel.Styles>
|
||||
<Style Selector="WrapPanel > StackPanel">
|
||||
<Setter Property="Width" Value="300" />
|
||||
<Setter Property="MinHeight" Value="300" />
|
||||
</Style>
|
||||
<Style Selector="WrapPanel > StackPanel > StackPanel">
|
||||
<Setter Property="HorizontalAlignment" Value="Center" />
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
<Setter Property="Margin" Value="8" />
|
||||
</Style>
|
||||
<Style Selector="WrapPanel > StackPanel > StackPanel > StackPanel">
|
||||
<Setter Property="Margin" Value="8" />
|
||||
</Style>
|
||||
</WrapPanel.Styles>
|
||||
<StackPanel Margin="16, 0" >
|
||||
<TextBlock Classes="Headline4 Subheadline" Text="Dialogs" />
|
||||
<Grid ColumnDefinitions="*, *" >
|
||||
|
||||
<StackPanel>
|
||||
<TextBlock Classes="Headline6 Subheadline2" Text="DialogHost" />
|
||||
<StackPanel>
|
||||
<TextBlock Classes="Headline6 Subheadline2" Text="From DialogHost" />
|
||||
<StackPanel>
|
||||
<TextBlock TextWrapping="Wrap"
|
||||
Text="Top level dialog with custom corner radius, using OpenDialog, passing content via the Parameter. You can pass a view model, provided a corresponding DataTemplate can be found in the scope of the root DialogHost."/>
|
||||
<StackPanel Margin="8 8 8 0">
|
||||
<Button Click="OpenDialogWithView">PASS VIEW</Button>
|
||||
<Button Click="OpenDialogWithModel">PASS MODEL</Button>
|
||||
<Button Click="OpenMoreDialogHostExamples">MORE EXAMPLES</Button>
|
||||
</StackPanel>
|
||||
<TextBlock TextWrapping="Wrap" >Top level dialog with custom corner radius, using OpenDialog, passing content via the Parameter. You can pass a view model, provided a corresponding DataTemplate can be found in the scope of the root DialogHost.</TextBlock>
|
||||
<StackPanel Spacing="8" >
|
||||
<Button Classes="flat" Click="OpenDialogWithView" >PASS VIEW</Button>
|
||||
<Button Classes="flat" Click="OpenDialogWithModel" >PASS MODEL</Button>
|
||||
<Button Classes="flat" Click="OpenMoreDialogHostExamples" >MORE EXAMPLES</Button>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
<StackPanel>
|
||||
<TextBlock Classes="Headline6 Subheadline2" Text="Standalone dialog" />
|
||||
</StackPanel>
|
||||
|
||||
<ItemsControl Items="{CompiledBinding StandaloneDialogItems}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate DataType="viewModels:DialogDemoItemViewModel">
|
||||
<DockPanel Margin="8">
|
||||
<Button DockPanel.Dock="Top"
|
||||
Content="{CompiledBinding Header}"
|
||||
Command="{CompiledBinding Command}" />
|
||||
<TextBlock Margin="8"
|
||||
HorizontalAlignment="Center"
|
||||
TextWrapping="Wrap"
|
||||
<StackPanel Grid.Column="1" >
|
||||
<TextBlock Classes="Headline6 Subheadline2" Text="Standalone dialog" />
|
||||
|
||||
DockPanel.Dock="Bottom"
|
||||
<ItemsControl Items="{CompiledBinding StandaloneDialogItems}" >
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate DataType="viewModels:DialogDemoItemViewModel" >
|
||||
<DockPanel Margin="8" >
|
||||
<Button DockPanel.Dock="Top"
|
||||
Classes="flat"
|
||||
Content="{CompiledBinding Header}"
|
||||
Command="{CompiledBinding Command}" />
|
||||
<TextBlock Margin="8"
|
||||
HorizontalAlignment="Center"
|
||||
TextWrapping="Wrap"
|
||||
|
||||
Text="{CompiledBinding Result}"
|
||||
IsVisible="{CompiledBinding Result,
|
||||
DockPanel.Dock="Bottom"
|
||||
|
||||
Text="{CompiledBinding Result}"
|
||||
IsVisible="{CompiledBinding Result,
|
||||
Converter={x:Static StringConverters.IsNotNullOrEmpty},
|
||||
FallbackValue=False}" />
|
||||
</DockPanel>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
</StackPanel>
|
||||
</dialogHost:DialogHost -->
|
||||
|
||||
<StackPanel>
|
||||
<StackPanel>
|
||||
<TextBlock Classes="Headline6 Subheadline2" Text="Standalone dialog" />
|
||||
|
||||
<ItemsControl Items="{CompiledBinding StandaloneDialogItems}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate DataType="viewModels:DialogDemoItemViewModel">
|
||||
<DockPanel Margin="8">
|
||||
<Button DockPanel.Dock="Top"
|
||||
Classes="flat"
|
||||
Content="{CompiledBinding Header}"
|
||||
Command="{CompiledBinding Command}" />
|
||||
<TextBlock Margin="8"
|
||||
HorizontalAlignment="Center"
|
||||
TextWrapping="Wrap"
|
||||
|
||||
DockPanel.Dock="Bottom"
|
||||
|
||||
Text="{CompiledBinding Result}"
|
||||
IsVisible="{CompiledBinding Result,
|
||||
Converter={x:Static StringConverters.IsNotNullOrEmpty},
|
||||
FallbackValue=False}" />
|
||||
</DockPanel>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</StackPanel>
|
||||
</DockPanel>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
|
||||
</UserControl>
|
||||
@@ -3,6 +3,7 @@ using System.Diagnostics;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Interactivity;
|
||||
using Avalonia.Markup.Xaml;
|
||||
using DialogHostAvalonia;
|
||||
using Material.Demo.Models;
|
||||
using Material.Demo.ViewModels;
|
||||
|
||||
@@ -24,13 +25,13 @@ namespace Material.Demo.Pages
|
||||
|
||||
private void OpenDialogWithView(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
DialogHost.DialogHost.Show(this.Resources["Sample2View"]!, "MainDialogHost");
|
||||
DialogHost.Show(this.Resources["Sample2View"]!, "MainDialogHost");
|
||||
}
|
||||
|
||||
private void OpenDialogWithModel(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
// View that associated with this model defined at DialogContentTemplate in DialogDemo.axaml
|
||||
DialogHost.DialogHost.Show(new Sample2Model(new Random().Next(0, 100)), "MainDialogHost");
|
||||
DialogHost.Show(new Sample2Model(new Random().Next(0, 100)), "MainDialogHost");
|
||||
}
|
||||
|
||||
private void OpenMoreDialogHostExamples(object? sender, RoutedEventArgs e)
|
||||
|
||||
Reference in New Issue
Block a user