MessageWindow.xaml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <Window x:Class="InABox.Wpf.MessageWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:local="clr-namespace:InABox.Wpf"
  7. mc:Ignorable="d"
  8. Width="350"
  9. MinWidth="350"
  10. SizeToContent="Height"
  11. x:Name="Window"
  12. WindowStartupLocation="CenterScreen"
  13. DataContext="{Binding ElementName=Window}">
  14. <Window.Resources>
  15. <DataTemplate x:Key="ButtonTemplate" DataType="local:MessageWindowButton">
  16. <Button Content="{Binding Content}"
  17. MinWidth="75" Padding="5" Margin="5"
  18. Click="Button_Click"
  19. Tag="{Binding}">
  20. </Button>
  21. </DataTemplate>
  22. </Window.Resources>
  23. <Grid x:Name="Grid">
  24. <Grid.RowDefinitions>
  25. <RowDefinition Height="*" MinHeight="100"/>
  26. <RowDefinition Height="Auto"/>
  27. <RowDefinition MaxHeight="150">
  28. <RowDefinition.Style>
  29. <Style TargetType="RowDefinition">
  30. <Setter Property="Height" Value="0"/>
  31. <Style.Triggers>
  32. <DataTrigger Binding="{Binding ShowDetails}" Value="True">
  33. <Setter Property="Height" Value="*"/>
  34. </DataTrigger>
  35. </Style.Triggers>
  36. </Style>
  37. </RowDefinition.Style>
  38. </RowDefinition>
  39. </Grid.RowDefinitions>
  40. <Border Grid.Row="0" BorderBrush="LightGray" BorderThickness="1"
  41. Margin="2" Padding="5" Background="White">
  42. <DockPanel>
  43. <Image x:Name="ImageControl" Margin="5" Source="{Binding Image}"
  44. DockPanel.Dock="Left" MaxWidth="50" MaxHeight="50">
  45. <Image.Style>
  46. <Style TargetType="Image">
  47. <Setter Property="Visibility" Value="Visible"/>
  48. <Style.Triggers>
  49. <DataTrigger Binding="{Binding Image}" Value="{x:Null}">
  50. <Setter Property="Visibility" Value="Collapsed"/>
  51. </DataTrigger>
  52. </Style.Triggers>
  53. </Style>
  54. </Image.Style>
  55. </Image>
  56. <TextBlock x:Name="MessageBox" Text="{Binding Message}"
  57. TextWrapping="Wrap"
  58. Margin="5" VerticalAlignment="Center"
  59. DockPanel.Dock="Right"/>
  60. </DockPanel>
  61. </Border>
  62. <Border Grid.Row="1"
  63. Background="WhiteSmoke" BorderBrush="Gray" BorderThickness="1" Margin="2,0,2,2">
  64. <Grid>
  65. <Grid.ColumnDefinitions>
  66. <ColumnDefinition Width="Auto"/>
  67. <ColumnDefinition Width="*"/>
  68. <ColumnDefinition Width="Auto"/>
  69. </Grid.ColumnDefinitions>
  70. <ItemsControl ItemsSource="{Binding LeftButtons}"
  71. Grid.Column="0"
  72. ItemTemplate="{StaticResource ButtonTemplate}">
  73. <ItemsControl.ItemsPanel>
  74. <ItemsPanelTemplate>
  75. <StackPanel Orientation="Horizontal"/>
  76. </ItemsPanelTemplate>
  77. </ItemsControl.ItemsPanel>
  78. </ItemsControl>
  79. <ItemsControl ItemsSource="{Binding RightButtons}"
  80. Grid.Column="2"
  81. ItemTemplate="{StaticResource ButtonTemplate}">
  82. <ItemsControl.ItemsPanel>
  83. <ItemsPanelTemplate>
  84. <StackPanel Orientation="Horizontal"/>
  85. </ItemsPanelTemplate>
  86. </ItemsControl.ItemsPanel>
  87. </ItemsControl>
  88. </Grid>
  89. </Border>
  90. <Border Grid.Row="2" BorderBrush="LightGray" BorderThickness="1"
  91. Margin="2" Padding="2" Background="White">
  92. <ScrollViewer VerticalScrollBarVisibility="Auto">
  93. <Border BorderBrush="LightGray" BorderThickness="1"
  94. Background="WhiteSmoke">
  95. <TextBlock x:Name="DetailsBox" Text="{Binding Details}"
  96. TextWrapping="Wrap"
  97. Padding="5" VerticalAlignment="Center"/>
  98. </Border>
  99. </ScrollViewer>
  100. </Border>
  101. </Grid>
  102. </Window>