first commit2
This commit is contained in:
parent
fa9fd8dda6
commit
b2ab71eb60
16
FlyoutPage1.xaml
Normal file
16
FlyoutPage1.xaml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<FlyoutPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
|
x:Class="MobileApp.FlyoutPage1"
|
||||||
|
xmlns:pages="clr-namespace:MobileApp">
|
||||||
|
<FlyoutPage.Flyout>
|
||||||
|
<pages:FlyoutPage1Flyout x:Name="FlyoutPage" />
|
||||||
|
</FlyoutPage.Flyout>
|
||||||
|
<FlyoutPage.Detail>
|
||||||
|
<NavigationPage>
|
||||||
|
<x:Arguments>
|
||||||
|
<pages:FlyoutPage1Detail />
|
||||||
|
</x:Arguments>
|
||||||
|
</NavigationPage>
|
||||||
|
</FlyoutPage.Detail>
|
||||||
|
</FlyoutPage>
|
36
FlyoutPage1.xaml.cs
Normal file
36
FlyoutPage1.xaml.cs
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
using Xamarin.Forms;
|
||||||
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
namespace MobileApp
|
||||||
|
{
|
||||||
|
[XamlCompilation(XamlCompilationOptions.Compile)]
|
||||||
|
public partial class FlyoutPage1 : FlyoutPage
|
||||||
|
{
|
||||||
|
public FlyoutPage1()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
FlyoutPage.ListView.ItemSelected += ListView_ItemSelected;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
|
||||||
|
{
|
||||||
|
var item = e.SelectedItem as FlyoutPage1FlyoutMenuItem;
|
||||||
|
if (item == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var page = (Page)Activator.CreateInstance(item.TargetType);
|
||||||
|
page.Title = item.Title;
|
||||||
|
|
||||||
|
Detail = new NavigationPage(page);
|
||||||
|
IsPresented = false;
|
||||||
|
|
||||||
|
FlyoutPage.ListView.SelectedItem = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
FlyoutPage1Detail.xaml
Normal file
9
FlyoutPage1Detail.xaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
|
x:Class="MobileApp.FlyoutPage1Detail"
|
||||||
|
Title="Detail">
|
||||||
|
<StackLayout Padding="10">
|
||||||
|
<Label Text="This is a detail page. To get the 'triple' line icon on each platform add a icon to each platform and update the 'Flyout' page with an Icon that references it."/>
|
||||||
|
</StackLayout>
|
||||||
|
</ContentPage>
|
20
FlyoutPage1Detail.xaml.cs
Normal file
20
FlyoutPage1Detail.xaml.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
using Xamarin.Forms;
|
||||||
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
namespace MobileApp
|
||||||
|
{
|
||||||
|
[XamlCompilation(XamlCompilationOptions.Compile)]
|
||||||
|
public partial class FlyoutPage1Detail : ContentPage
|
||||||
|
{
|
||||||
|
public FlyoutPage1Detail()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
45
FlyoutPage1Flyout.xaml
Normal file
45
FlyoutPage1Flyout.xaml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
|
x:Class="MobileApp.FlyoutPage1Flyout"
|
||||||
|
Title="Flyout">
|
||||||
|
<StackLayout>
|
||||||
|
<ListView x:Name="MenuItemsListView"
|
||||||
|
SeparatorVisibility="None"
|
||||||
|
HasUnevenRows="true"
|
||||||
|
ItemsSource="{Binding MenuItems}">
|
||||||
|
<ListView.Header>
|
||||||
|
<Grid BackgroundColor="#03A9F4">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="10"/>
|
||||||
|
<ColumnDefinition Width="*"/>
|
||||||
|
<ColumnDefinition Width="10"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="30"/>
|
||||||
|
<RowDefinition Height="80"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="10"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Label
|
||||||
|
Grid.Column="1"
|
||||||
|
Grid.Row="2"
|
||||||
|
Text="AppName"
|
||||||
|
Style="{DynamicResource SubtitleStyle}"/>
|
||||||
|
</Grid>
|
||||||
|
</ListView.Header>
|
||||||
|
<ListView.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<ViewCell>
|
||||||
|
<StackLayout Padding="15,10" HorizontalOptions="FillAndExpand">
|
||||||
|
<Label VerticalOptions="FillAndExpand"
|
||||||
|
VerticalTextAlignment="Center"
|
||||||
|
Text="{Binding Title}"
|
||||||
|
FontSize="24"/>
|
||||||
|
</StackLayout>
|
||||||
|
</ViewCell>
|
||||||
|
</DataTemplate>
|
||||||
|
</ListView.ItemTemplate>
|
||||||
|
</ListView>
|
||||||
|
</StackLayout>
|
||||||
|
</ContentPage>
|
56
FlyoutPage1Flyout.xaml.cs
Normal file
56
FlyoutPage1Flyout.xaml.cs
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
using Xamarin.Forms;
|
||||||
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
namespace MobileApp
|
||||||
|
{
|
||||||
|
[XamlCompilation(XamlCompilationOptions.Compile)]
|
||||||
|
public partial class FlyoutPage1Flyout : ContentPage
|
||||||
|
{
|
||||||
|
public ListView ListView;
|
||||||
|
|
||||||
|
public FlyoutPage1Flyout()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
BindingContext = new FlyoutPage1FlyoutViewModel();
|
||||||
|
ListView = MenuItemsListView;
|
||||||
|
}
|
||||||
|
|
||||||
|
private class FlyoutPage1FlyoutViewModel : INotifyPropertyChanged
|
||||||
|
{
|
||||||
|
public ObservableCollection<FlyoutPage1FlyoutMenuItem> MenuItems { get; set; }
|
||||||
|
|
||||||
|
public FlyoutPage1FlyoutViewModel()
|
||||||
|
{
|
||||||
|
MenuItems = new ObservableCollection<FlyoutPage1FlyoutMenuItem>(new[]
|
||||||
|
{
|
||||||
|
new FlyoutPage1FlyoutMenuItem { Id = 0, Title = "Page 1" },
|
||||||
|
new FlyoutPage1FlyoutMenuItem { Id = 1, Title = "Page 2" },
|
||||||
|
new FlyoutPage1FlyoutMenuItem { Id = 2, Title = "Page 3" },
|
||||||
|
new FlyoutPage1FlyoutMenuItem { Id = 3, Title = "Page 4" },
|
||||||
|
new FlyoutPage1FlyoutMenuItem { Id = 4, Title = "Page 5" },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
#region INotifyPropertyChanged Implementation
|
||||||
|
public event PropertyChangedEventHandler PropertyChanged;
|
||||||
|
void OnPropertyChanged([CallerMemberName] string propertyName = "")
|
||||||
|
{
|
||||||
|
if (PropertyChanged == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
20
FlyoutPage1FlyoutMenuItem.cs
Normal file
20
FlyoutPage1FlyoutMenuItem.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MobileApp
|
||||||
|
{
|
||||||
|
public class FlyoutPage1FlyoutMenuItem
|
||||||
|
{
|
||||||
|
public FlyoutPage1FlyoutMenuItem()
|
||||||
|
{
|
||||||
|
TargetType = typeof(FlyoutPage1FlyoutMenuItem);
|
||||||
|
}
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string Title { get; set; }
|
||||||
|
|
||||||
|
public Type TargetType { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -57,6 +57,24 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<MauiXaml Remove="FlyoutPage1.xaml" />
|
||||||
|
<MauiXaml Remove="FlyoutPage1Detail.xaml" />
|
||||||
|
<MauiXaml Remove="FlyoutPage1Flyout.xaml" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="FlyoutPage1.xaml">
|
||||||
|
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="FlyoutPage1Detail.xaml">
|
||||||
|
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="FlyoutPage1Flyout.xaml">
|
||||||
|
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||||
|
</EmbeddedResource>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
|
<PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
|
||||||
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
|
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
|
||||||
|
@ -6,6 +6,11 @@
|
|||||||
<ActiveDebugProfile>Windows Machine</ActiveDebugProfile>
|
<ActiveDebugProfile>Windows Machine</ActiveDebugProfile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Update="FlyoutPage1FlyoutMenuItem.cs">
|
||||||
|
<SubType>Code</SubType>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
<None Update="App.xaml">
|
<None Update="App.xaml">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</None>
|
</None>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user