检测上调整窗口大小UWP
点击我想在调整大小按钮的点击启动消息对话框..检测上调整窗口大小UWP
我插在任意点击消息对话框中,但我怎么能启动它在调整窗口大小?
代码:
public sealed partial class MainPage : Page {
public MainPage()
{
this.InitializeComponent();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
var messageDialog = new MessageDialog("This is a Message dialog");
await messageDialog.ShowAsync();
}
}
我走近一个可能的解决方案,但是,我只需要调整大小按钮点击,这可能吗?
代码:提前
Window.Current.CoreWindow.SizeChanged += (ss, ee) => {
var appView = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView();
if (appView.IsFullScreen)
{
//show message
}
ee.Handled = true;
};
谢谢!
回答:
您可以订阅页面大小更改事件此
XAML
<Page x:Class="App.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:SO15"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" SizeChanged="Page_SizeChanged"> <!-- SizeChanged event -->
C#
private void Page_SizeChanged(object sender, SizeChangedEventArgs e) {
Window.Current.CoreWindow.SizeChanged += async (ss, ee) =>
{
var appView = ApplicationView.GetForCurrentView();
if (appView.IsFullScreen)
{
var messageDialog = new MessageDialog("Window is Maximized");
await messageDialog.ShowAsync();
}
ee.Handled = true;
};
Window.Current.CoreWindow.SizeChanged += async (ss, ee) =>
{
var appView = ApplicationView.GetForCurrentView();
if (!appView.IsFullScreen)
{
var messageDialog = new MessageDialog("Window is not Maximized");
await messageDialog.ShowAsync();
}
ee.Handled = true;
};
}
或者处理在C#中推荐
使用此事件
Window.Current.CoreWindow.SizeChanged += CoreWindow_SizeChanged;
bool msgboxshown = false; //add this condition in above solution also if msg dialog shown multiple times at the time of mazimizing window private async void CoreWindow_SizeChanged(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.WindowSizeChangedEventArgs args)
{
var appView = ApplicationView.GetForCurrentView();
if (!appView.IsFullScreen && !msgboxshown)
{
var messageDialog = new MessageDialog("Window is not maximized");
msgboxshown = true;
await messageDialog.ShowAsync();
msgboxshown = false;
}
if (appView.IsFullScreen && !msgboxshown)
{
var messageDialog = new MessageDialog("Windows is maximized");
msgboxshown = true;
await messageDialog.ShowAsync();
msgboxshown = false;
}
args.Handled = true;
}
/* You can remove msgboxshown condition , it is because message dialog will show continuously multiple times */
以上是 检测上调整窗口大小UWP 的全部内容, 来源链接: utcz.com/qa/257324.html