WindowedContentDialog
Show ContentDialog in a separate window in WinUI 3.
Install / Use
/learn @SuGar0218/WindowedContentDialogREADME
WindowedContentDialog and MessageBox
⚠️ DEPRECATED
This repository is deprecated. Features are integrated into SuGarToolkit.WinUI3.
WindowedContentDialog: Show ContentDialog in separate window.
MessageBox: Show MessageBox in WinUI 3 Style.
<img width="2891" height="2813" alt="MessageBox_1 1 0" src="https://github.com/user-attachments/assets/311a43c4-f55e-4d12-a82a-80f0078a80bf" />Controls
- WindowedContentDialog
- FlyoutContentDialog
- ContentDialogWindow
- ContentDialogFlyout
- ContentDialogContent
Using in {code-behind}
Using similarly to ContentDialog in WinUI 3
WindowedContentDialog dialog = new()
{
Title = "YourTitle",
Content = "YourContent",
PrimaryButtonText = "YourPrimaryButtonText",
SecondaryButtonText = "YourSecondaryButtonText",
CloseButtonText = "YourCloseButtonText",
DefaultButton = ContentDialogButton.Primary,
OwnerWindow = App.Current.MainWindow
};
ContentDialogResult result = await dialog.ShowAsync();
If you want to prevent dialog from closing after buttons clicked, please handle click event and set e.Cancel = true where e is ContentDialogWindowButtonClickEventArgs.
dialog.PrimaryButtonClick += (o, e) => e.Cancel = true;
Using similarly to MessageBox in WPF or WinForm
MessageBoxResult result = await MessageBox.ShowAsync(
modal: true,
App.Current.MainWindow,
"YourMessage",
"YourTitle",
MessageBoxButtons.YesNoCancel,
MessageBoxDefaultButton.Button3);
Using in < XAML />
xmlns:dialogs="using:SuGarToolkit.Controls.Dialogs"
Using WindowedContentDialog in <Page.Resources>
<Page.Resources>
<dialogs:WindowedContentDialog
x:Key="XamlWindowedContentDialog"
x:Name="XamlWindowedContentDialog"
CloseButtonText="{x:Bind settings.CloseButtonText, Mode=OneWay}"
DefaultButton="{x:Bind settings.DefaultButton, Mode=OneWay}"
IsModal="{x:Bind settings.IsModal, Mode=OneWay}"
IsPrimaryButtonEnabled="{x:Bind settings.IsPrimaryButtonEnabled, Mode=OneWay}"
IsSecondaryButtonEnabled="{x:Bind settings.IsSecondaryButtonEnabled, Mode=OneWay}"
OwnerWindow="{x:Bind app:App.Current.MainWindow}"
PrimaryButtonText="{x:Bind settings.PrimaryButtonText, Mode=OneWay}"
SecondaryButtonText="{x:Bind settings.SecondaryButtonText, Mode=OneWay}"
SmokeBehind="{x:Bind settings.SmokeBehind, Mode=OneWay}">
<dialogs:WindowedContentDialog.SystemBackdrop>
<MicaBackdrop />
</dialogs:WindowedContentDialog.SystemBackdrop>
<dialogs:WindowedContentDialog.Title>
<dialogs:MessageBoxHeader Icon="Information" Text="{x:Bind settings.Title, Mode=OneWay}" />
</dialogs:WindowedContentDialog.Title>
<StackPanel>
<CheckBox Content="Lorem" IsThreeState="True" />
<CheckBox Content="Ipsum" IsThreeState="True" />
<CheckBox Content="Dolor" IsThreeState="True" />
<CheckBox Content="Sit" IsThreeState="True" />
<CheckBox Content="Amet" IsThreeState="True" />
</StackPanel>
</dialogs:WindowedContentDialog>
</Page.Resources>
Using FlyoutContentDialog in <Page.Resources>
<Page.Resources>
<dialogs:FlyoutContentDialog
x:Key="XamlFlyoutContentDialog"
x:Name="XamlFlyoutContentDialog"
CloseButtonText="{x:Bind settings.CloseButtonText, Mode=OneWay}"
IsPrimaryButtonEnabled="{x:Bind settings.IsPrimaryButtonEnabled, Mode=OneWay}"
IsSecondaryButtonEnabled="{x:Bind settings.IsSecondaryButtonEnabled, Mode=OneWay}"
PlacementTarget="{x:Bind ShowContentDialogButton}"
PrimaryButtonText="{x:Bind settings.PrimaryButtonText, Mode=OneWay}"
SecondaryButtonText="{x:Bind settings.SecondaryButtonText, Mode=OneWay}"
SmokeBehind="{x:Bind settings.SmokeBehind, Mode=OneWay}">
<dialogs:FlyoutContentDialog.Title>
<dialogs:MessageBoxHeader Icon="Information" Text="{x:Bind settings.Title, Mode=OneWay}" />
</dialogs:FlyoutContentDialog.Title>
<StackPanel>
<CheckBox Content="Lorem" IsThreeState="True" />
<CheckBox Content="Ipsum" IsThreeState="True" />
<CheckBox Content="Dolor" IsThreeState="True" />
<CheckBox Content="Sit" IsThreeState="True" />
<CheckBox Content="Amet" IsThreeState="True" />
</StackPanel>
</dialogs:FlyoutContentDialog>
</Page.Resources>
Using ContentDialogWindow in XAML
<dialogs:ContentDialogWindow
x:Class="SuGarToolkit.Sample.Dialogs.Views.SampleContentDialogWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dialogs="using:SuGarToolkit.Controls.Dialogs"
xmlns:local="using:SuGarToolkit.Sample.Dialogs.Views"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="Sample ContentDialogWindow"
CloseButtonText="Close Button"
DefaultButton="Primary"
DialogTitle="{x:Bind Title}"
PrimaryButtonText="Primary Button"
SecondaryButtonText="Secondary Button"
mc:Ignorable="d">
<dialogs:ContentDialogWindow.SystemBackdrop>
<MicaBackdrop />
</dialogs:ContentDialogWindow.SystemBackdrop>
<StackPanel>
<CheckBox Content="Using" IsThreeState="True" />
<CheckBox Content="ContentDialogWindow" IsChecked="True" />
<CheckBox Content="in XAML" IsThreeState="True" />
<TextBox
AcceptsReturn="True"
FontFamily="Consolas"
IsReadOnly="True"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto"
Text="{x:Bind local:SampleContentDialogWindow.XamlCode}" />
</StackPanel>
</dialogs:ContentDialogWindow>
Using ContentDialogFlyout as Button.Flyout
<Button Content="ContentDialogFlyout">
<Button.Flyout>
<dialogs:ContentDialogFlyout
CloseButtonText="Close Button"
DefaultButton="Primary"
DialogTitle="Sample ContentDialogFlyout"
PrimaryButtonText="Primary Button"
RequestedTheme="{x:Bind ActualTheme}"
SecondaryButtonText="Secondary Button">
<StackPanel>
<CheckBox Content="Using" IsThreeState="True" />
<CheckBox Content="ContentDialogFlyout" IsChecked="True" />
<CheckBox Content="in XAML" IsThreeState="True" />
<TextBox
AcceptsReturn="True"
FontFamily="Consolas"
IsReadOnly="True"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto"
Text="{x:Bind local:ContentDialogFlyoutSamplePage.XamlCode}" />
</StackPanel>
</dialogs:ContentDialogFlyout>
</Button.Flyout>
</Button>
Using in your programs
Download nupkg from releases page or https://www.nuget.org/packages/SuGarToolkit.Controls.Dialogs.
Related Skills
docs-writer
99.2k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
337.3kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
arscontexta
2.9kClaude Code plugin that generates individualized knowledge systems from conversation. You describe how you think and work, have a conversation and get a complete second brain as markdown files you own.
zola-ai
An autonomous Solana wallet agent that executes payments via Twitter mentions and an in-app dashboard, powered by Claude.
