gpt4 book ai didi

c# - WPF 框架 - 使用按钮加载页面的正确方法

转载 作者:行者123 更新时间:2023-12-05 07:37:19 24 4
gpt4 key购买 nike

我有一个 WPF 应用程序,我想在其中使用按钮将页面加载到框架中。我想知道这是否是最优雅的方式。

最好我想在 XAML 中加载所有页面,但我没有成功,

我尝试使用:

<Button Name="StationButton" Content="Stations" Command="GoToPage" CommandParameters="View/StationPage.xaml"/>

但是按钮被禁用了,我找不到启用它们的方法。所以更程序化的解决方案似乎如下。

MainWindow.xaml 包含:

    <Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" BorderBrush="Gray" BorderThickness="1" Margin="3">
<StackPanel Margin="5">
<StackPanel.Resources>
<Style TargetType="Button">
<Setter Property="Margin" Value="0,2"/>
</Style>
</StackPanel.Resources>
<Button Name="StationButton" Content="Stations" Click="Button_Click"/>
<Button Name ="ItemButton" Content="Items" Click="Button_Click"/>
</StackPanel>
</Border>
<Border Grid.Column="1" BorderBrush="Gray" BorderThickness="1" Margin="3">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Frame Name="MainFrame" Source="Views/StationPage.xaml" />
<StatusBar Grid.Row="1" Name="StatusBar"/>
</Grid>

</Border>
</Grid>

Button_Click 方法是:

    private void Button_Click(object sender, RoutedEventArgs e)
{
Button button = sender as Button;
switch ((string)button.Content)
{
case "Stations":
MainFrame.Navigate(new Uri("pack://application:,,,/Views/StationPage.xaml"));
break;
case "Items":
MainFrame.Navigate(new Uri("pack://application:,,,/Views/ItemPage.xaml"));
break;
default:
break;
}
}

最佳答案

XAML、WPF 和 UWP 在设计时考虑了 MVVM 模式。虽然您可以使用其他模式和编程方法,但这样做通常会失去 XAML 大约 90% 的功能。并且在其他所有地方都会遇到其他问题。

对于未使用 MVVM 模式的情况,您很少能找到答案。

几年前,我写了一篇介绍 MVVM 的文章。这应该让你开始:http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

关于c# - WPF 框架 - 使用按钮加载页面的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48642679/

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