PageRenderTime 42ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/V4/Quickstarts/View-Switching Navigation/Silverlight/View-Switching Navigation/ViewSwitchingNavigation.Email/Views/ComposeEmailView.xaml

#
XAML | 92 lines | 82 code | 10 blank | 0 comment | 1 complexity | be79ea9e6d9cbab714b51f7c6c587a3c MD5 | raw file
  1. <UserControl
  2. x:Class="ViewSwitchingNavigation.Email.Views.ComposeEmailView"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
  5. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  6. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8. xmlns:i="http://schemas.microsoft.com/expression/2010/interactions"
  9. xmlns:ei="http://schemas.microsoft.com/expression/2010/interactivity"
  10. xmlns:sys="clr-namespace:System;assembly=mscorlib"
  11. xmlns:prism="http://www.codeplex.com/prism"
  12. xmlns:GuidanceTools="clr-namespace:Microsoft.Practices.Prism.GuidanceTools;assembly=Microsoft.Practices.Prism.GuidanceTools" mc:Ignorable="d"
  13. d:DesignHeight="300" d:DesignWidth="400"
  14. d:DataContext="{d:DesignData /SampleData/ComposeEmailViewModelSampleData.xaml}">
  15. <UserControl.Resources>
  16. <DataTemplate x:Name="ConfirmExitDialogTemplate">
  17. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding}"/>
  18. </DataTemplate>
  19. </UserControl.Resources>
  20. <Grid x:Name="LayoutRoot" Background="White">
  21. <ei:Interaction.Behaviors>
  22. <i:DataStateBehavior Binding="{Binding SendState}" Value="Sending" TrueState="Sending" FalseState="Normal"/>
  23. </ei:Interaction.Behaviors>
  24. <ei:Interaction.Triggers>
  25. <prism:InteractionRequestTrigger SourceObject="{Binding ConfirmExitInteractionRequest}">
  26. <prism:PopupChildWindowAction ContentTemplate="{StaticResource ConfirmExitDialogTemplate}"/>
  27. </prism:InteractionRequestTrigger>
  28. </ei:Interaction.Triggers>
  29. <VisualStateManager.VisualStateGroups>
  30. <VisualStateGroup x:Name="VisualStateGroup">
  31. <VisualState x:Name="Normal"/>
  32. <VisualState x:Name="Sending">
  33. <Storyboard>
  34. <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Control.IsEnabled)" Storyboard.TargetName="MainControl">
  35. <DiscreteObjectKeyFrame KeyTime="0">
  36. <DiscreteObjectKeyFrame.Value>
  37. <sys:Boolean>False</sys:Boolean>
  38. </DiscreteObjectKeyFrame.Value>
  39. </DiscreteObjectKeyFrame>
  40. </ObjectAnimationUsingKeyFrames>
  41. </Storyboard>
  42. </VisualState>
  43. </VisualStateGroup>
  44. </VisualStateManager.VisualStateGroups>
  45. <ContentControl x:Name="MainControl" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Margin="5">
  46. <Grid>
  47. <Grid.RowDefinitions>
  48. <RowDefinition Height="Auto"/>
  49. <RowDefinition Height="Auto"/>
  50. <RowDefinition Height="*"/>
  51. <RowDefinition Height="Auto"/>
  52. </Grid.RowDefinitions>
  53. <Grid.ColumnDefinitions>
  54. <ColumnDefinition Width="Auto"/>
  55. <ColumnDefinition Width="*"/>
  56. </Grid.ColumnDefinitions>
  57. <sdk:Label Grid.Row="0" Grid.Column="0" Margin="0,0,5,0" VerticalAlignment="Bottom">To:</sdk:Label>
  58. <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding EmailDocument.To}" AutomationProperties.AutomationId="ToTextBox"/>
  59. <sdk:Label Grid.Row="1" Grid.Column="0" Margin="0,0,5,0" VerticalAlignment="Bottom">Subject:</sdk:Label>
  60. <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding EmailDocument.Subject}" Margin="0,5,0,0" AutomationProperties.AutomationId="SubjectTextBox"/>
  61. <TextBox Text="{Binding EmailDocument.Text}" AcceptsReturn="True" MinHeight="100"
  62. Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalScrollBarVisibility="Auto"
  63. Padding="0" Margin="0,5" AutomationProperties.AutomationId="EmailTextBox"/>
  64. <StackPanel Grid.Row="3" Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right">
  65. <Button Command="{Binding SendEmailCommand}" Grid.Row="3" Grid.Column="1" Width="60" Margin="6,0">
  66. Send
  67. </Button>
  68. <Button Command="{Binding CancelEmailCommand}" Width="60">
  69. Cancel
  70. </Button>
  71. <GuidanceTools:InfoTipToggleButton VerticalAlignment="Center">
  72. <StackPanel MinWidth="100" MinHeight="24" MaxWidth="400">
  73. <TextBlock Margin="2" TextWrapping="Wrap">The Send button demonstrates navigating backwards in the regions journal, after sending the email.</TextBlock>
  74. <TextBlock Margin="2" TextWrapping="Wrap">The Cancel button demonstrates the ability to cancel a navigation request after asking the user if they're sure they want to discard their changes.</TextBlock>
  75. <TextBlock Margin="2" TextWrapping="Wrap">Both of these can be seen in the ComposeEmailViewModel's implementation.</TextBlock>
  76. </StackPanel>
  77. </GuidanceTools:InfoTipToggleButton>
  78. </StackPanel>
  79. </Grid>
  80. </ContentControl>
  81. </Grid>
  82. </UserControl>