none
C++ WindowSizeChanged检测屏幕分辨率变化怎么没有效果 RRS feed

  • 问题

  • 我用WindowSizeChanged 函数检测屏幕分辨率的变化,以便能够及时调整我的App适应状态,弹出一个消息框。发现不会响应,打断点也走不到,肿么办?

    void TestWin8::MediaPage::WindowSizeChanged(Platform::Object^ sender, Windows::UI::Core::WindowSizeChangedEventArgs^ e)
    {
    Windows::UI::Popups::MessageDialog^ msg = ref new Windows::UI::Popups::MessageDialog("分辨率改变!");
    msg->ShowAsync();
    }

    担心影响,我把XAML里的 

    <VisualState x:Name="Snapped">
                        <Storyboard>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="backButton" Storyboard.TargetProperty="Style">
                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedBackButtonStyle}"/>
                            </ObjectAnimationUsingKeyFrames>
    </VisualState>

    去掉了也没有效果。求助!!!


    2012年9月13日 14:38

答案

  • 你是在哪里注册的SizeChanged 事件? 你尝试在 OnNavigatedTo(NavigationEventArgs e)方法里注册了SizeChanged事件,是好用的。

    你这个问题很难debug,我建议你看看下面的信息:

    是否可以尝试使用ViewBox控件当作你的Root element, 这样ViewBox会根据不同的分辨率自适应。

    还有这个属性:Windows.Graphics.Display.DisplayProperties.LogicalDpi

    还有这个事件:Windows.Graphics.Display.DisplayProperties.LogicalDpiChanged+=DisplayProperties_LogicalDpiChanged;

    你根据你的需要看看哪个更适合你。

    MSDN文档:

    http://msdn.microsoft.com/en-us/library/windows/apps/hh780612.aspx


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年9月14日 5:30