Skip to content

Commit

Permalink
feat: Add CommandBar Sample Page
Browse files Browse the repository at this point in the history
  • Loading branch information
ajpinedam committed Feb 25, 2021
1 parent 0293230 commit fdcaa98
Show file tree
Hide file tree
Showing 7 changed files with 263 additions and 8 deletions.
37 changes: 29 additions & 8 deletions src/SamplesApp/UITests.Shared/UITests.Shared.projitems
Original file line number Diff line number Diff line change
Expand Up @@ -3925,14 +3925,26 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\CustomContent\CommandBar_Frame.xaml" >
<Page Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\CustomContent\CommandBar_Frame.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\CustomContent\CommandBar_Page1.xaml" >
<Page Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\CustomContent\CommandBar_Page1.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\LongTitle\CommandBar_Frame.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\LongTitle\CommandBar_Page1.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\LongTitle\CommandBar_Page2.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)Helpers\BindableBase.cs" />
Expand Down Expand Up @@ -4599,12 +4611,21 @@
<Compile Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\BitmapIconTests\BitmapIcon_Generic.xaml.cs">
<DependentUpon>BitmapIcon_Generic.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\CustomContent\CommandBar_Frame.xaml.cs" >
<Compile Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\CustomContent\CommandBar_Frame.xaml.cs">
<DependentUpon>CommandBar_Frame.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\CustomContent\CommandBar_Page1.xaml.cs" >
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\CustomContent\CommandBar_Page1.xaml.cs">
<DependentUpon>CommandBar_Page1.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\LongTitle\CommandBar_Frame.xaml.cs" >
<DependentUpon>CommandBar_Frame.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\LongTitle\CommandBar_Page1.xaml.cs" >
<DependentUpon>CommandBar_Page1.xaml</DependentUpon>
</Compile>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\LongTitle\CommandBar_Page2.xaml.cs" >
<DependentUpon>CommandBar_Page2.xaml</DependentUpon>
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Windows_UI_Xaml_Controls\CommandBar\Native_Frame\Page_Detail.xaml.cs">
<DependentUpon>Page_Detail.xaml</DependentUpon>
</Compile>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<UserControl x:Class="UITests.Windows_UI_Xaml_Controls.CommandBar.LongTitle.CommandBar_Frame"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UITests.Windows_UI_Xaml_Controls.CommandBar.LongTitle"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:xamarin="http://uno.ui/xamarin"
mc:Ignorable="d xamarin"
d:DesignHeight="300"
d:DesignWidth="400">

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Frame x:Name="HostFrame"
xamarin:Style="{StaticResource NativeDefaultFrame}" />

<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button x:Name="NavigateInitialButton"
Content="Navigate to first page"
Click="Navigate_Initial" />
</Grid>
</Grid>
</UserControl>
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using UITests.Windows_UI_Xaml_Controls.CommandBar.Native_Frame;
using Uno.UI.Samples.Controls;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236

namespace UITests.Windows_UI_Xaml_Controls.CommandBar.LongTitle
{
[SampleControlInfo("CommandBar", "CommandBar_LongTitle_Navigation")]
public sealed partial class CommandBar_Frame : UserControl
{
public CommandBar_Frame()
{
this.InitializeComponent();
}

private void Navigate_Initial(object sender, RoutedEventArgs args)
{
HostFrame.Navigate(typeof(CommandBar_Page1));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<Page
x:Class="UITests.Windows_UI_Xaml_Controls.CommandBar.LongTitle.CommandBar_Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UITests.Windows_UI_Xaml_Controls.CommandBar.LongTitle"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:xamarin="http://uno.ui/xamarin"
mc:Ignorable="d xamarin"
d:DesignHeight="300"
d:DesignWidth="400">

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>

<CommandBar x:Name="Page1CommandBar">
<CommandBar.Content>
<Border VerticalAlignment="Center"
Height="44"
HorizontalAlignment="Center">
<TextBlock Text="This is supposed to be a very long text used to overflow the CommandBar title and validate how it behaves on navigation and will try to make it very long in case this is run on an iPad"
Foreground="Black"
TextTrimming="CharacterEllipsis"
TextWrapping="NoWrap" />
</Border>
</CommandBar.Content>
<CommandBar.PrimaryCommands>
<AppBarButton Content="Click" />
</CommandBar.PrimaryCommands>
</CommandBar>

<StackPanel Grid.Row="1"
Spacing="10"
VerticalAlignment="Center">

<TextBlock Text="Main Page"
HorizontalAlignment="Center" />

<Button x:Name="NavigateToPage2Button"
Content="Navigate to Page 2"
Click="OnButtonClicked"
HorizontalAlignment="Center"/>

<Button x:Name="CalculateSize"
Content="Calculate TitleView Size"
Click="OnCalculateSizeClicked"
HorizontalAlignment="Center"/>

<TextBlock x:Name="Result"
HorizontalAlignment="Center" />
</StackPanel>
</Grid>
</Page>
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
using System;
using System.Threading.Tasks;
using Windows.UI;
using Uno.UI.Samples.Controls;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;

#if __IOS__
using UIKit;
using Uno.UI.Controls;
#endif
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236

namespace UITests.Windows_UI_Xaml_Controls.CommandBar.LongTitle
{
public sealed partial class CommandBar_Page1 : Page
{
public CommandBar_Page1()
{
this.InitializeComponent();
}

public async void OnButtonClicked(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(CommandBar_Page2));
}

public async void OnCalculateSizeClicked(object sender, RoutedEventArgs e)
{
#if __IOS__
UIView parent = this;
while (parent.HasParent())
{
parent = parent.Superview;
}

var titleView = parent.FindFirstChild<TitleView>();
var titleViewParent = titleView.Superview;

//When the error occurs the TitleView Frame.Width get bigger than its parent Frame.Width
//making the TitleView overlap any AppBarButton of the CommandBar
Result.Text = titleView.Frame.Width > titleViewParent.Frame.Width ? "FAILED" : "PASSED";
#endif
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<Page
x:Class="UITests.Windows_UI_Xaml_Controls.CommandBar.LongTitle.CommandBar_Page2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UITests.Windows_UI_Xaml_Controls.CommandBar.LongTitle"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400">

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>

<CommandBar Content="Title on Page 2"
x:Name="Page2CommandBar" />

<StackPanel Grid.Row="1"
VerticalAlignment="Center">
<Button x:Name="GoBackButton"
Content="Go Back"
Click="OnButtonClicked"
HorizontalAlignment="Center"/>
</StackPanel>

</Grid>
</Page>
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Uno.UI.Samples.Controls;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;


// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236

namespace UITests.Windows_UI_Xaml_Controls.CommandBar.LongTitle
{
public sealed partial class CommandBar_Page2 : Page
{
public CommandBar_Page2()
{
this.InitializeComponent();
}

public void OnButtonClicked(object sender, object args)
{
Frame.GoBack();
}
}
}

0 comments on commit fdcaa98

Please sign in to comment.