Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ WPF Gallery ] Added PageHeader control and created DataTemplate for navigation card #630

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion Sample Applications/WPFGallery/App.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,11 @@
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/PresentationFramework.Fluent;component/Themes/Fluent.xaml" />

<ResourceDictionary Source="Resources/PageStyles.xaml" />
<ResourceDictionary Source="Resources/Templates.xaml" />

<ResourceDictionary Source="Controls/ControlExample.xaml" />
<ResourceDictionary Source="Controls/PageStyles.xaml" />
<ResourceDictionary Source="Controls/PageHeader.xaml" />
<ResourceDictionary Source="Controls/ColorPageExample.xaml" />
<ResourceDictionary Source="Controls/ColorTile.xaml" />

Expand Down
39 changes: 39 additions & 0 deletions Sample Applications/WPFGallery/Controls/PageHeader.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:WPFGallery.Controls"
xmlns:helpers="clr-namespace:WPFGallery.Helpers">

<helpers:NullToVisibilityConverter x:Key="NullToVisibilityConverter"/>

<Style TargetType="{x:Type controls:PageHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type controls:PageHeader}">
<StackPanel
VerticalAlignment="Center">
<TextBlock
Style="{StaticResource TitleTextBlockStyle}"
Text="{TemplateBinding Title}"
AutomationProperties.HeadingLevel="Level1"/>
<TextBlock
x:Name="DescriptionTextBlock"
Text="{TemplateBinding Description}"
AutomationProperties.HeadingLevel="Level2"
Visibility="{TemplateBinding Description,
Converter={StaticResource NullToVisibilityConverter}}"/>
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="ShowDescription"
Value="False">
<Setter TargetName="DescriptionTextBlock"
Property="Visibility"
Value="Hidden"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

</ResourceDictionary>
45 changes: 45 additions & 0 deletions Sample Applications/WPFGallery/Controls/PageHeader.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
using System.Windows.Controls;

namespace WPFGallery.Controls;

public class PageHeader : Control
{
public static readonly DependencyProperty TitleProperty = DependencyProperty.Register(
nameof(Title),
typeof(string),
typeof(PageHeader),
new PropertyMetadata(null)
);

public static readonly DependencyProperty DescriptionProperty = DependencyProperty.Register(
nameof(Description),
typeof(string),
typeof(PageHeader),
new PropertyMetadata(null)
);

public static readonly DependencyProperty ShowDescriptionProperty = DependencyProperty.Register(
nameof(ShowDescription),
typeof(bool),
typeof(PageHeader),
new PropertyMetadata(true)
);

public string? Title
{
get => (string?)GetValue(TitleProperty);
set => SetValue(TitleProperty, value);
}

public string? Description
{
get => (string?)GetValue(DescriptionProperty);
set => SetValue(DescriptionProperty, value);
}

public bool ShowDescription
{
get => (bool)GetValue(ShowDescriptionProperty);
set => SetValue(ShowDescriptionProperty, value);
}
}
45 changes: 45 additions & 0 deletions Sample Applications/WPFGallery/Resources/Templates.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:helpers="clr-namespace:WPFGallery.Helpers"
xmlns:sys="clr-namespace:System;assembly=mscorlib">

<ItemsPanelTemplate x:Key="WrapPanelTemplate">
<WrapPanel Margin="10"
Orientation="Horizontal"/>
</ItemsPanelTemplate>

<DataTemplate x:Key="NavigationCardTemplate">
<Button
Width="360"
Height="90"
Margin="7"
Padding="20,10"
HorizontalContentAlignment="Left"
AutomationProperties.Name="{Binding Title}"
Command="{Binding ViewModel.NavigateCommand, RelativeSource={RelativeSource AncestorType={x:Type Page}}}"
CommandParameter="{Binding}">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding ImageSource}"
Width="50"
Height="50"
Margin="0,0,8,0"/>
<StackPanel Orientation="Vertical">
<TextBlock
Margin="10,0,0,0"
Style="{StaticResource BodyStrongTextBlockStyle}"
Text="{Binding Title}"
AutomationProperties.HeadingLevel="Level2"/>
<TextBlock
Width="240"
Margin="10,0,0,0"
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
Opacity="0.7"
Style="{StaticResource CaptionTextBlockStyle}"
Text="{Binding Description}"/>
</StackPanel>
</StackPanel>
</Button>
</DataTemplate>

</ResourceDictionary>
8 changes: 4 additions & 4 deletions Sample Applications/WPFGallery/Views/AboutPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WPFGallery.Views"
xmlns:controls="clr-namespace:WPFGallery.Controls"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="AboutPage"
d:DesignHeight="450"
Expand Down Expand Up @@ -41,12 +42,11 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>

<StackPanel
<controls:PageHeader
Grid.Row="0"
Margin="0,0,0,40"
VerticalAlignment="Center">
<TextBlock Style="{StaticResource TitleTextBlockStyle}" Text="{Binding ViewModel.PageTitle}" AutomationProperties.HeadingLevel="Level1" />
</StackPanel>
Title="{Binding ViewModel.PageTitle}"
Description="{Binding ViewModel.PageDescription}" />

<StackPanel Grid.Row="1" Margin="5,5,5,24">
<Expander AutomationProperties.Name="WPF Gallery Preview">
Expand Down
56 changes: 12 additions & 44 deletions Sample Applications/WPFGallery/Views/AllSamplesPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WPFGallery.Views"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls="clr-namespace:WPFGallery.Controls"
Title="AllSamplesPage"
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
mc:Ignorable="d">
Expand All @@ -14,57 +15,24 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>

<StackPanel
<controls:PageHeader
Grid.Row="0"
Margin="0,0,0,40"
VerticalAlignment="Center">
<TextBlock Style="{StaticResource TitleTextBlockStyle}" Text="{Binding ViewModel.PageTitle}" AutomationProperties.HeadingLevel="Level1" />
</StackPanel>
Title="{Binding ViewModel.PageTitle}"
Description="{Binding ViewModel.PageDescription}" />

<ScrollViewer
Grid.Row="1"
Margin="-13,0,0,0"
VerticalScrollBarVisibility="Auto">
<ItemsControl AutomationProperties.Name="Items in group" ItemsSource="{Binding ViewModel.NavigationCards}" Focusable="False">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Margin="10" Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button
Width="360"
Height="90"
Margin="7"
Padding="20,10"
HorizontalContentAlignment="Left"
AutomationProperties.Name="{Binding Name, StringFormat='{}{0} Page'}"
Command="{Binding ViewModel.NavigateCommand, RelativeSource={RelativeSource AncestorType={x:Type local:AllSamplesPage}}}"
CommandParameter="{Binding PageType}">
<StackPanel Orientation="Horizontal">
<ContentPresenter
Width="50"
Height="50"
Margin="0,0,8,0"
Content="{Binding Icon}" />
<StackPanel Orientation="Vertical">
<TextBlock
Margin="10,0,0,0"
Style="{StaticResource BodyStrongTextBlockStyle}"
Text="{Binding Name}" AutomationProperties.HeadingLevel="Level3" />
<TextBlock
Width="240"
Margin="10,0,0,0"
Foreground="{StaticResource TextFillColorPrimaryBrush}" Opacity="0.7"
Style="{StaticResource CaptionTextBlockStyle}"
Text="{Binding Description}" />
</StackPanel>
</StackPanel>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ItemsControl
Grid.Row="1"
Margin="-12,0,0,0"
AutomationProperties.Name="Items in group"
ItemsSource="{Binding ViewModel.NavigationCards}"
Focusable="False"
ItemsPanel="{StaticResource WrapPanelTemplate}"
ItemTemplate="{StaticResource NavigationCardTemplate}" />
</ScrollViewer>
</Grid>
</Page>
13 changes: 1 addition & 12 deletions Sample Applications/WPFGallery/Views/BasicInput/ButtonPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Margin="0,0,0,32">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<StackPanel>
<TextBlock Style="{StaticResource TitleTextBlockStyle}" Text="{Binding ViewModel.PageTitle}" AutomationProperties.HeadingLevel="Level1" />
</StackPanel>

</Grid>
<controls:PageHeader Margin="0,0,0,32" Title="{Binding ViewModel.PageTitle}" ShowDescription="False" />

<ScrollViewer Grid.Row="1" Margin="0,0,0,24" Padding="0,0,24,0">
<StackPanel>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Margin="0,0,0,32">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<StackPanel Grid.Column="0">
<TextBlock
Grid.Column="0"
Style="{StaticResource TitleTextBlockStyle}"
Text="{Binding ViewModel.PageTitle}" AutomationProperties.HeadingLevel="Level1" />
</StackPanel>

</Grid>
<controls:PageHeader Margin="0,0,0,32" Title="{Binding ViewModel.PageTitle}" ShowDescription="False" />

<ScrollViewer Grid.Row="1" Margin="0,0,0,24" Padding="0,0,24,0">
<StackPanel Margin="0,0,0,24">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Margin="0,0,0,32">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<StackPanel>
<TextBlock Style="{StaticResource TitleTextBlockStyle}" Text="{Binding ViewModel.PageTitle}" AutomationProperties.HeadingLevel="Level1" />
</StackPanel>

</Grid>
<controls:PageHeader Margin="0,0,0,32" Title="{Binding ViewModel.PageTitle}" ShowDescription="False" />

<ScrollViewer Grid.Row="1" Margin="0,0,0,24" Padding="0,0,24,0">
<StackPanel Margin="0,0,0,24">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Margin="0,0,0,32">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<StackPanel>
<TextBlock Style="{StaticResource TitleTextBlockStyle}" Text="{Binding ViewModel.PageTitle}" AutomationProperties.HeadingLevel="Level1" />
</StackPanel>

</Grid>
<controls:PageHeader Margin="0,0,0,32" Title="{Binding ViewModel.PageTitle}" ShowDescription="False" />

<ScrollViewer Grid.Row="1" Margin="0,0,0,24" Padding="0,0,24,0">
<StackPanel Margin="0,0,0,24">
Expand Down
13 changes: 1 addition & 12 deletions Sample Applications/WPFGallery/Views/BasicInput/SliderPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Margin="0,0,0,32">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<StackPanel>
<TextBlock Style="{StaticResource TitleTextBlockStyle}" Text="{Binding ViewModel.PageTitle}" AutomationProperties.HeadingLevel="Level1" />
</StackPanel>

</Grid>
<controls:PageHeader Margin="0,0,0,32" Title="{Binding ViewModel.PageTitle}" ShowDescription="False" />

<ScrollViewer Grid.Row="1" Margin="0,0,0,24" Padding="0,0,24,0">
<StackPanel Margin="0,0,0,24">
Expand Down
Loading
Loading