gpt4 book ai didi

c# - 如何在 UWP 上加载 Split View内容的框架传递参数中的页面?

转载 作者:太空狗 更新时间:2023-10-30 00:18:34 25 4
gpt4 key购买 nike

这是我的 MainPage.xaml

<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:BibleApp"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:Domain="using:BibleApp.Domain"
x:Class="BibleApp.MainPage">

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

<RelativePanel>
<Button Name="HamburgerButton"
FontFamily="Segoe MDL2 Assets"
Content="&#xE14C;" FontSize="14"
Click="HamburgerButton_Click"/>
</RelativePanel>

<SplitView Name="MySplitView"
Grid.Row="1"
DisplayMode="CompactOverlay"
OpenPaneLength="200"
CompactPaneLength="34"
HorizontalAlignment="Left">
<SplitView.Pane>
<ListBox Name="IconsListBox" SelectionMode="Single" SelectionChanged="IconsListBox_SelectionChanged">
<ListBoxItem Name="Biblia">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE128;" FontSize="18"/>
<TextBlock Text="Bíblia" FontSize="12" Margin="15,0,0,0"/>
</StackPanel>
</ListBoxItem>

<ListBoxItem Name="PesquisarPalavraChave">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE11A;" FontSize="18"/>
<TextBlock Text="Pesquisar palavra chave" FontSize="12" Margin="15,0,0,0"/>
</StackPanel>
</ListBoxItem>

<ListBoxItem Name="PesquisarAssunto">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE773;" FontSize="18"/>
<TextBlock Text="Pesquisar assunto" FontSize="12" Margin="15,0,0,0"/>
</StackPanel>
</ListBoxItem>
</ListBox>
</SplitView.Pane>
<SplitView.Content>
<Frame Name="MyFrame"/>
</SplitView.Content>
</SplitView>
</Grid>
</Page>

这是 MainPage 的隐藏代码:

private void IconsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
MyFrame = this.Frame;
if (Biblia.IsSelected) { Frame.Navigate(typeof(View.BiblePage), bible);}
else if (PesquisarPalavraChave.IsSelected) {Frame.Navigate(typeof(View.SearchWordPage));}
else if (PesquisarAssunto.IsSelected) { Frame.Navigate(typeof(View.SearchMatterPage)); }
}

这是 BiblePage OnNavigatedTo 事件:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
bible = (Bible)e.Parameter;
}

问题是 BiblePage 的“OnNavigatedTo”事件没有被触发,所以我无法将我的“bible”变量从 MainPage 传输到 BiblePage。

当我在 splitview 的内容之外执行此过程时,它工作得很好。

如何在 MainPage 的 splitview 内容传递参数中加载 xaml 页面?

最佳答案

请执行以下测试//刚刚测试过,没有遇到任何问题。

1/MainPage.xaml

<Page
x:Class="App3.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App3"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<SplitView DisplayMode="Inline" Background="Black" IsPaneOpen="True" OpenPaneLength="360" >
<SplitView.Pane>
<Button Content="GoToPage" Click="GoToPage_Click" Foreground="White"/>
</SplitView.Pane>
<SplitView.Content>
<Frame x:Name="contentFrame"/>
</SplitView.Content>
</SplitView>
</Grid>
</Page>

2/MainPage.xaml.cs

namespace App3
{
/// <summary>
/// Une page vide peut être utilisée seule ou constituer une page de destination au sein d'un frame.
/// </summary>
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}

private void GoToPage_Click(object sender, RoutedEventArgs e)
{
contentFrame.Navigate(typeof(SecondPage), new Params() { MyProperty = 42 });
}
}

public class Params
{
public int MyProperty { get; set; }
}
}

3/SecondPage.xaml.cs

namespace App3
{

public sealed partial class SecondPage : Page
{
public SecondPage()
{
this.InitializeComponent();
}

protected override void OnNavigatedTo(NavigationEventArgs e)
{
Params result = (Params)e.Parameter;
base.OnNavigatedTo(e);
}
}
}

关于c# - 如何在 UWP 上加载 Split View内容的框架传递参数中的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34272823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com