Вы должны быть в состоянии получить правильный размер, обрабатывая событие SizeChanged главного окна приложения. Если вам явно необходимо знать, изменяется ли приложение из / в полноэкранный режим, возможно, вы могли бы установить флаг в обработчике событий FullScreenChanged - например, свойство bool с именем IsFullScreenChanging - вы можете проверить это свойство в обработчике событий SizeChanged в главном окне, сделать все, что вам нужно, и сбросить флаг в ожидании следующего события FullScreenChanged.
CS:
using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
namespace SilverlightApplication1
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
SizeChanged += MainPageSizeChanged;
}
private static void MainPageSizeChanged(object sender, SizeChangedEventArgs e)
{
Debug.WriteLine("Size is now " + e.NewSize);
}
private void ToggleFullScreenButtonClick(object sender, RoutedEventArgs e)
{
Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
}
}
}
XAML:
<UserControl x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="79,110,0,0" Name="FullScreenButton" VerticalAlignment="Top" Width="75" Click="ToggleFullScreenButtonClick" />
</Grid>
</UserControl>