Difference between revisions of "Confirm/Information Dialog with Caliburn Micro"
From Richard's Wiki
Line 92: | Line 92: | ||
} | } | ||
+ | </code> | ||
+ | |||
+ | InformationDialogViewModel.cs: | ||
+ | |||
+ | <code> | ||
+ | using Caliburn.Micro; | ||
+ | namespace WPFSample1 | ||
+ | { | ||
+ | /// <summary> | ||
+ | /// Usage: _windowManager.ShowDialog(new InformationDialogViewModel{Text = text}); | ||
+ | /// </summary> | ||
+ | public class InformationDialogViewModel : Screen | ||
+ | { | ||
+ | public string Text { get; set; } | ||
+ | public InformationDialogViewModel() | ||
+ | { | ||
+ | DisplayName = "Information"; | ||
+ | } | ||
+ | public void Close() | ||
+ | { | ||
+ | TryClose(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
</code> | </code> |
Latest revision as of 17:35, 8 October 2013
InformationDialogView.xaml:
<Window x:Class="WPFSample1.InformationDialogView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" Width="300" Height="300" d:DesignHeight="300" d:DesignWidth="300" Focusable="True" Loaded="ConfirmView_OnLoaded" PreviewKeyDown="ConfirmView_PreviewKeyDown" WindowStyle="ToolWindow" WindowStartupLocation="CenterOwner"> <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Background="{Binding Path=Background, ElementName=Text}" > <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="auto" /> </Grid.RowDefinitions> <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" > <TextBox BorderThickness="0" IsReadOnly="True" VerticalContentAlignment="Center" TextAlignment="Center" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="Text" /> </ScrollViewer> <Button Height="20" Content="OK" HorizontalAlignment="Center" VerticalAlignment="Bottom" Grid.Row="1" x:Name="Close" /> </Grid> </Window>
InformationDialogView.xaml.cs:
using System.Windows; using System.Windows.Controls; using System.Windows.Input; namespace WPFSample1 { /// <summary> /// Interaction logic for InformationDialogView.xaml /// </summary> public partial class InformationDialogView : Window { public InformationDialogView() { InitializeComponent(); } private void ConfirmView_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Escape) { Window window = GetWindow(this); if (window != null) { window.Close(); } } } private void ConfirmView_OnLoaded(object sender, RoutedEventArgs e) { Button closeButton = Close; closeButton.Focus(); } } }
InformationDialogViewModel.cs:
using Caliburn.Micro; namespace WPFSample1 { /// <summary> /// Usage: _windowManager.ShowDialog(new InformationDialogViewModel{Text = text}); /// </summary> public class InformationDialogViewModel : Screen { public string Text { get; set; } public InformationDialogViewModel() { DisplayName = "Information"; } public void Close() { TryClose(); } } }