TransitioningContentControlPage.axaml 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <UserControl xmlns="https://github.com/avaloniaui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:vm="using:ControlCatalog.ViewModels"
  6. xmlns:converter="clr-namespace:ControlCatalog.Converter"
  7. xmlns:system="using:System"
  8. mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
  9. x:DataType="vm:TransitioningContentControlPageViewModel"
  10. x:CompileBindings="True"
  11. x:Class="ControlCatalog.Pages.TransitioningContentControlPage">
  12. <UserControl.DataContext>
  13. <vm:TransitioningContentControlPageViewModel />
  14. </UserControl.DataContext>
  15. <UserControl.Styles>
  16. <Style Selector="HeaderedContentControl">
  17. <Setter Property="Template">
  18. <Setter.Value>
  19. <ControlTemplate>
  20. <Grid>
  21. <Grid.ColumnDefinitions>
  22. <ColumnDefinition Width="Auto" SharedSizeGroup="HeaderCol" />
  23. <ColumnDefinition Width="*" />
  24. </Grid.ColumnDefinitions>
  25. <ContentPresenter Content="{TemplateBinding Header}"
  26. Grid.Column="0"
  27. VerticalAlignment="Center" />
  28. <ContentPresenter Content="{TemplateBinding Content}"
  29. Grid.Column="1"
  30. VerticalAlignment="Center" />
  31. </Grid>
  32. </ControlTemplate>
  33. </Setter.Value>
  34. </Setter>
  35. </Style>
  36. </UserControl.Styles>
  37. <UserControl.Resources>
  38. <converter:MathSubtractConverter x:Key="MathSubtractConverter" />
  39. <system:Double x:Key="TopMargin">8</system:Double>
  40. </UserControl.Resources>
  41. <DockPanel LastChildFill="True"
  42. Height="{Binding Path=Bounds.Height, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Grid}, Converter={StaticResource MathSubtractConverter},ConverterParameter={StaticResource TopMargin}}">
  43. <TextBlock DockPanel.Dock="Top" Classes="h2">The TransitioningContentControl control allows you to show a page transition whenever the Content changes.</TextBlock>
  44. <ExperimentalAcrylicBorder DockPanel.Dock="Bottom" Margin="10" CornerRadius="5" >
  45. <ExperimentalAcrylicBorder.Material>
  46. <ExperimentalAcrylicMaterial BackgroundSource="Digger" TintColor="White" />
  47. </ExperimentalAcrylicBorder.Material>
  48. <StackPanel Margin="5" Spacing="5" Grid.IsSharedSizeScope="True">
  49. <HeaderedContentControl Header="Select a transition">
  50. <ComboBox Items="{Binding PageTransitions}" SelectedItem="{Binding SelectedTransition}" />
  51. </HeaderedContentControl>
  52. <HeaderedContentControl Header="Duration">
  53. <NumericUpDown Value="{Binding Duration}" Increment="250" Minimum="100" />
  54. </HeaderedContentControl>
  55. <HeaderedContentControl Header="Clip to Bounds">
  56. <ToggleSwitch IsChecked="{Binding ClipToBounds}" />
  57. </HeaderedContentControl>
  58. </StackPanel>
  59. </ExperimentalAcrylicBorder>
  60. <Button DockPanel.Dock="Left" Command="{Binding PrevImage}" Content="&lt;" />
  61. <Button DockPanel.Dock="Right" Command="{Binding NextImage}" Content=">" />
  62. <Border ClipToBounds="{Binding ClipToBounds}" Margin="5">
  63. <TransitioningContentControl Content="{Binding SelectedImage}"
  64. PageTransition="{Binding SelectedTransition.Transition}" >
  65. <TransitioningContentControl.ContentTemplate>
  66. <DataTemplate DataType="Bitmap">
  67. <Image Source="{Binding}" />
  68. </DataTemplate>
  69. </TransitioningContentControl.ContentTemplate>
  70. </TransitioningContentControl>
  71. </Border>
  72. </DockPanel>
  73. </UserControl>