检测上调整窗口大小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

回到顶部