嗨,我在我的Windows8Metro应用中使用Callisto中的设置弹出按钮的方式是这样的:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
SettingsPane.GetForCurrentView().CommandsRequested += MainPage_CommandsRequested;
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
SettingsPane.Show();
}
void MainPage_CommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
{
SettingsCommand storage = new SettingsCommand("SettingsW", "Settings Wide", (x) =>
{
SettingsFlyout settings = new SettingsFlyout();
settings.FlyoutWidth = Callisto.Controls.SettingsFlyout.SettingsFlyoutWidth.Wide;
settings.HeaderText = "Settings Wide";
settings.Content = new CallistoSettings.SettingsViews.SettingsWide();
settings.IsOpen = true;
});
args.Request.ApplicationCommands.Add(storage);
// Settings Narrow
SettingsCommand settingsNarrow = new SettingsCommand("SettingsNarrow", "Settings Narrow", (x) =>
{
SettingsFlyout settings = new SettingsFlyout();
settings.FlyoutWidth = Callisto.Controls.SettingsFlyout.SettingsFlyoutWidth.Narrow;
settings.HeaderBrush = new SolidColorBrush(Colors.Orange);
settings.Background = new SolidColorBrush(Colors.Gray);
settings.HeaderText = "Settings Narrow";
settings.Content = new CallistoSettings.SettingsViews.SettingsNarrow();
settings.IsOpen = true;
});
args.Request.ApplicationCommands.Add(settingsNarrow);
// About
SettingsCommand about = new SettingsCommand("About", "About", (x) =>
{
SettingsFlyout settings = new SettingsFlyout();
settings.FlyoutWidth = Callisto.Controls.SettingsFlyout.SettingsFlyoutWidth.Narrow;
settings.HeaderText = "About";
settings.Content = new CallistoSettings.SettingsViews.About();
settings.IsOpen = true;
});
args.Request.ApplicationCommands.Add(about);
}
}但我怀疑的是:
1)它打开我按下的所需弹出按钮,但在顶部有一个后退按钮,如果我按下它会打开设置窗格,但我不想打开设置窗格(如果用户按下设置弹出按钮顶部的后退按钮,设置弹出按钮应该被取消(就像我在设置窗格外按下时发生的方式一样(灯被取消))
我想要的是,在按下时,我应该得到设置弹出按钮,即使用户按下设置弹出后退按钮,它也应该关闭设置弹出按钮,而不是显示默认设置窗格。
请告诉我如何才能做到这一点。
提前谢谢。
发布于 2012-12-12 23:28:21
如果你要显示按钮,那么它的行为应该和控件中的代码一样--用户会期望看到你现在看到的行为。如果你不想要这样的行为,为什么不干脆删除/禁用按钮呢?但是,您将再次与设计指南发生冲突,因为设计指南要求您应该拥有此控件。
这里的信息是,用户期望特定的行为,如果你的应用程序没有做他们期望的事情,可能会惹恼他们。
发布于 2015-11-23 19:51:11
请改用SettingsPane.ShowIndependent();。
https://stackoverflow.com/questions/13837535
复制相似问题