MessageWindow.xaml 4.7 KB

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