/Application/GUI/Windows/PropertiesWindow.xaml

http://yet-another-music-application.googlecode.com/ · XAML · 237 lines · 191 code · 26 blank · 20 comment · 0 complexity · 16219449dd7d28b7b5b2d752ff483183 MD5 · raw file

  1. <!--Information.xaml
  2. The dialog showing information about one or several
  3. tracks.
  4. = = = = = = = = = =
  5. This code is part of the Stoffi Music Player Project.
  6. Visit our website at: stoffiplayer.com
  7. This program is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU General Public License
  9. as published by the Free Software Foundation; either version
  10. 3 of the License, or (at your option) any later version.
  11. See stoffiplayer.com/license for more information.
  12. -->
  13. <Window x:Class="Stoffi.PropertiesWindow"
  14. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  15. xmlns:loc="http://schemas.tomer.com/winfx/2006/xaml/presentation"
  16. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  17. xmlns:Stoffi="clr-namespace:Stoffi"
  18. loc:Translate.Uid="PropertiesTitle"
  19. Title="{loc:Translate Title}"
  20. MinHeight="400" MinWidth="400"
  21. Width="400" Height="500"
  22. Icon="../../Stoffi.ico"
  23. WindowStartupLocation="CenterScreen"
  24. Background="#D4D0C8"
  25. TextOptions.TextFormattingMode="Display">
  26. <Window.Resources>
  27. <Stoffi:BoolToVisibilityConverter x:Key="boolToVis" />
  28. <Style TargetType="{x:Type TextBlock}"
  29. x:Key="GridBlockStyle">
  30. <Setter Property="VerticalAlignment" Value="Center" />
  31. <Style.Triggers>
  32. <DataTrigger Binding="{Binding Path=Edit}" Value="False">
  33. <Setter Property="Visibility" Value="Visible"/>
  34. </DataTrigger>
  35. <DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor,
  36. AncestorType={x:Type ListViewItem}}, Path=DataContext.Edit}" Value="True">
  37. <Setter Property="Visibility" Value="Hidden"/>
  38. </DataTrigger>
  39. </Style.Triggers>
  40. </Style>
  41. <Style TargetType="{x:Type FrameworkElement}"
  42. x:Key="GridEditStyle">
  43. <Setter Property="VerticalAlignment" Value="Center" />
  44. <Style.Triggers>
  45. <DataTrigger Binding="{Binding Path=Edit}" Value="True">
  46. <Setter Property="Visibility" Value="Visible"/>
  47. </DataTrigger>
  48. <DataTrigger Binding="{Binding Path=Edit}" Value="False">
  49. <Setter Property="Visibility" Value="Hidden"/>
  50. </DataTrigger>
  51. </Style.Triggers>
  52. </Style>
  53. <Style x:Key="PropertyRowStyle" TargetType="{x:Type ListViewItem}">
  54. <Setter Property="Background" Value="Transparent"/>
  55. <Setter Property="BorderBrush" Value="Transparent"/>
  56. <Setter Property="BorderThickness" Value="1"/>
  57. <Setter Property="Margin" Value="0,0,0,1"/>
  58. <Setter Property="Padding" Value="5,13,5,3"/>
  59. <Setter Property="VerticalContentAlignment" Value="Center"/>
  60. <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
  61. <Setter Property="Template">
  62. <Setter.Value>
  63. <ControlTemplate TargetType="{x:Type ListViewItem}">
  64. <Border Background="Transparent" Name="Border1">
  65. <GridViewRowPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="2" />
  66. </Border>
  67. <ControlTemplate.Triggers>
  68. <Trigger Property="IsSelected" Value="true">
  69. <Setter Property="Background" TargetName="Border1" Value="DodgerBlue"/>
  70. <Setter Property="Foreground" Value="White"/>
  71. </Trigger>
  72. </ControlTemplate.Triggers>
  73. </ControlTemplate>
  74. </Setter.Value>
  75. </Setter>
  76. </Style>
  77. </Window.Resources>
  78. <Grid Margin="5">
  79. <Grid.RowDefinitions>
  80. <RowDefinition Height="*" Name="TabsRow"/>
  81. <RowDefinition Height="Auto" Name="ButtonRow"/>
  82. </Grid.RowDefinitions>
  83. <TabControl Name="Tabs" Grid.Row="0">
  84. <!-- General tab -->
  85. <TabItem loc:Translate.Uid="PropertiesGeneral" Header="{loc:Translate Header}">
  86. <ScrollViewer Padding="5"
  87. Margin="-5"
  88. HorizontalScrollBarVisibility="Disabled"
  89. VerticalScrollBarVisibility="Auto"
  90. HorizontalContentAlignment="Stretch"
  91. HorizontalAlignment="Stretch">
  92. <Grid HorizontalAlignment="Stretch">
  93. <Grid.RowDefinitions>
  94. <RowDefinition Height="Auto"/>
  95. <RowDefinition Height="Auto"/>
  96. <RowDefinition Height="Auto"/>
  97. <RowDefinition Height="Auto"/>
  98. <RowDefinition Height="Auto"/>
  99. <RowDefinition Height="Auto"/>
  100. <RowDefinition Height="Auto"/>
  101. <RowDefinition Height="Auto"/>
  102. <RowDefinition Height="Auto"/>
  103. <RowDefinition Height="Auto"/>
  104. <RowDefinition Height="Auto"/>
  105. <RowDefinition Height="Auto"/>
  106. <RowDefinition Height="Auto"/>
  107. <RowDefinition Height="Auto"/>
  108. <RowDefinition Height="Auto"/>
  109. <RowDefinition Height="Auto"/>
  110. <RowDefinition Height="Auto"/>
  111. <RowDefinition Height="Auto"/>
  112. </Grid.RowDefinitions>
  113. <Grid.ColumnDefinitions>
  114. <ColumnDefinition Width="Auto"/>
  115. <ColumnDefinition Width="*"/>
  116. </Grid.ColumnDefinitions>
  117. <Border Margin="0 0 10 0" Grid.Row="0" Grid.Column="0"
  118. Width="50" Height="50" Padding="0" SnapsToDevicePixels="True">
  119. <Border.Background>
  120. <VisualBrush>
  121. <VisualBrush.Visual>
  122. <Grid>
  123. <Image Source="../Images/AlbumArt/BackgroundMultiple.png" x:Name="ArtBackgroundMultiple" SnapsToDevicePixels="True"/>
  124. <Image Source="../Images/AlbumArt/BackgroundSingle.png" x:Name="ArtBackgroundSingle" SnapsToDevicePixels="True" Visibility="Collapsed"/>
  125. </Grid>
  126. </VisualBrush.Visual>
  127. </VisualBrush>
  128. </Border.Background>
  129. <Image Source="../Images/AlbumArt/Default.jpg" x:Name="AlbumArt" Width="46" Height="46"/>
  130. </Border>
  131. <TextBox Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Stretch" Name="Filename" KeyUp="Filename_KeyUp"/>
  132. <TextBlock Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Left" Name="Filecount" Visibility="Collapsed"/>
  133. <Separator Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Background="SlateGray" Margin="5 10"/>
  134. <TextBlock Grid.Row="2" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralType" Text="{loc:Translate Text}" />
  135. <TextBlock Grid.Row="2" Grid.Column="1" Margin="0 5" Name="Filetype" TextTrimming="CharacterEllipsis"/>
  136. <Separator Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Background="Gray" Margin="5 10"/>
  137. <TextBlock Grid.Row="4" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralLength" Text="{loc:Translate Text}"/>
  138. <TextBlock Grid.Row="4" Grid.Column="1" Margin="0 5" Name="Length" TextTrimming="CharacterEllipsis"/>
  139. <TextBlock Grid.Row="5" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralChannels" Text="{loc:Translate Text}"/>
  140. <TextBlock Grid.Row="5" Grid.Column="1" Margin="0 5" Name="Channels" TextTrimming="CharacterEllipsis"/>
  141. <TextBlock Grid.Row="6" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralCodec" Text="{loc:Translate Text}"/>
  142. <TextBlock Grid.Row="6" Grid.Column="1" Margin="0 5" Name="Codec" TextTrimming="CharacterEllipsis"/>
  143. <TextBlock Grid.Row="7" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralBitrate" Text="{loc:Translate Text}"/>
  144. <TextBlock Grid.Row="7" Grid.Column="1" Margin="0 5" Name="Bitrate" TextTrimming="CharacterEllipsis"/>
  145. <TextBlock Grid.Row="8" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralSamplerate" Text="{loc:Translate Text}"/>
  146. <TextBlock Grid.Row="8" Grid.Column="1" Margin="0 5" Name="SampleRate" TextTrimming="CharacterEllipsis"/>
  147. <Separator Grid.Row="9" Grid.Column="0" Grid.ColumnSpan="2" Background="Gray" Margin="5 10"/>
  148. <TextBlock Grid.Row="10" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralLocation" Text="{loc:Translate Text}"/>
  149. <TextBlock Grid.Row="10" Grid.Column="1" Margin="0 5" Name="Filepath" TextTrimming="CharacterEllipsis"/>
  150. <TextBlock Grid.Row="11" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralSize" Text="{loc:Translate Text}"/>
  151. <TextBlock Grid.Row="11" Grid.Column="1" Margin="0 5" Name="Filesize" TextTrimming="CharacterEllipsis"/>
  152. <Separator Grid.Row="12" Grid.Column="0" Grid.ColumnSpan="2" Background="Gray" Margin="5 10"/>
  153. <TextBlock Grid.Row="13" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralPlayCount" Text="{loc:Translate Text}"/>
  154. <TextBlock Grid.Row="13" Grid.Column="1" Margin="0 5" Name="PlayCount" TextTrimming="CharacterEllipsis"/>
  155. <TextBlock Grid.Row="14" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralLastPlayed" Text="{loc:Translate Text}" Name="LastPlayedLabel"/>
  156. <TextBlock Grid.Row="14" Grid.Column="1" Margin="0 5" Name="LastPlayed" TextTrimming="CharacterEllipsis"/>
  157. <TextBlock Grid.Row="15" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralCreated" Text="{loc:Translate Text}" Name="CreatedAtLabel"/>
  158. <TextBlock Grid.Row="15" Grid.Column="1" Margin="0 5" Name="CreatedAt" TextTrimming="CharacterEllipsis"/>
  159. <TextBlock Grid.Row="16" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralModified" Text="{loc:Translate Text}" Name="ModifiedAtLabel"/>
  160. <TextBlock Grid.Row="16" Grid.Column="1" Margin="0 5" Name="ModifiedAt" TextTrimming="CharacterEllipsis"/>
  161. <TextBlock Grid.Row="17" Grid.Column="0" Margin="10 5" loc:Translate.Uid="PropertiesGeneralAccessed" Text="{loc:Translate Text}" Name="AccessedAtLabel"/>
  162. <TextBlock Grid.Row="17" Grid.Column="1" Margin="0 5" Name="AccessedAt" TextTrimming="CharacterEllipsis"/>
  163. </Grid>
  164. </ScrollViewer>
  165. </TabItem>
  166. <!-- Details tab-->
  167. <TabItem loc:Translate.Uid="PropertiesDetails" Header="{loc:Translate Header}">
  168. <ListView x:Name="DetailsList" Margin="5" BorderBrush="Gray" BorderThickness="1" SelectionMode="Single" Foreground="Black" SnapsToDevicePixels="True" ItemContainerStyle="{StaticResource PropertyRowStyle}">
  169. <ListView.View>
  170. <GridView>
  171. <GridViewColumn Width="140" DisplayMemberBinding="{Binding Name}">
  172. <GridViewColumnHeader loc:Translate.Uid="PropertiesDetailsProperty" Content="{loc:Translate Content}" HorizontalContentAlignment="Left"
  173. Margin="-2,0,0,0" Padding="5,3"/>
  174. </GridViewColumn>
  175. <GridViewColumn Width="200">
  176. <GridViewColumnHeader Tag="Value" loc:Translate.Uid="PropertiesDetailsValue" Content="{loc:Translate Content}" HorizontalContentAlignment="Left"
  177. Padding="5,3" />
  178. <GridViewColumn.CellTemplate>
  179. <DataTemplate>
  180. <Stoffi:EditableTextBlock Tag="{Binding Path=Name}" ClickToEdit="True" SimpleHover="False" Text="{Binding Path=Value}" Edited="EditableTextBlock_Edited" />
  181. </DataTemplate>
  182. </GridViewColumn.CellTemplate>
  183. </GridViewColumn>
  184. </GridView>
  185. </ListView.View>
  186. </ListView>
  187. </TabItem>
  188. </TabControl>
  189. <!-- Buttons -->
  190. <DockPanel Name="Buttons" HorizontalAlignment="Stretch" Grid.Row="1" LastChildFill="False">
  191. <Button DockPanel.Dock="Left" Width="25" Margin="0 5" Name="Prev" Click="Previous_Click">
  192. <Button.Content>
  193. <Image Name="PrevImage"/>
  194. </Button.Content>
  195. </Button>
  196. <Button DockPanel.Dock="Left" Width="25" Margin="10 5" Name="Next" Click="Next_Click">
  197. <Button.Content>
  198. <Image Name="NextImage"/>
  199. </Button.Content>
  200. </Button>
  201. <Button DockPanel.Dock="Right" loc:Translate.Uid="ButtonApply" Content="{loc:Translate Content}" Visibility="Collapsed" MinWidth="80" Margin="5 5 0 5" Name="Apply" Click="Apply_Click"/>
  202. <Button DockPanel.Dock="Right" loc:Translate.Uid="ButtonClose" Content="{loc:Translate Content}" Visibility="Visible" MinWidth="80" Margin="0 5" Name="Cancel" Click="CloseCancel_Click"/>
  203. <Button DockPanel.Dock="Right" loc:Translate.Uid="ButtonOK" Content="{loc:Translate Content}" Visibility="Collapsed" MinWidth="80" Margin="5 5" Name="OK" Click="OK_Click"/>
  204. </DockPanel>
  205. </Grid>
  206. </Window>