주 응용 프로그램 창의 SizeChanged 이벤트를 처리하여 올바른 크기를 얻을 수 있어야합니다. 애플리케이션이 전체 화면 모드에서 /로 변경되는지 여부를 명시 적으로 알아야하는 경우 FullScreenChanged 이벤트 핸들러에서 플래그를 설정할 수 있습니다. 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>
App.Current.Host.Content.Resized 이벤트를 언급 했습니까? 그렇다면 다른 문제가 있습니다 : 전체 화면 모드를 종료 할 때만 트리거되며 앱이 전체 화면 모드로 들어갈 때 호출되지 않습니다. (이 냄새는 나에게 들리지만, 누군가가 뛰어 들어가서 "디자인 상"이유를 설명 할 것입니다.) – Scrappydog
Silverlight 4에서 재미있는 재현 가능한 버그가 발견되어이 질문을 해결하려고 시도하는 중 충돌이 발생했습니다. 귀하의 브라우저! http://blog.scrappydog.com/2010/07/repo-fullscreen-bug-in-silverlight-4.html – Scrappydog
예, 브라우저가 다운되었습니다. nice :) 이벤트에 관해서는 App.Current.Host.Content.Resized 이벤트가 아닌 내 Xaml.cs 파일의 SizeChanged 이벤트. SizeChanged 이벤트는 전체 화면 모드를 시작하거나 종료 할 때 안정적으로 시작되는 것으로 보입니다. 시연 할 기본 답변에 코드 추가. –