【问题标题】:Why does minwindowheight not work in xaml for adaptive designing为什么 minwindowheight 在 xaml 中不适用于自适应设计
【发布时间】:2016-06-21 10:52:06
【问题描述】:

我正在使用 XAML 和 C# 制作一个 Windows 通用应用程序。我想使用视觉状态触发器,下面的代码会根据运行应用的设备的屏幕宽度更改正文背景。

 <VisualStateManager.VisualStateGroups>

        <VisualStateGroup>

            <VisualState x:Name="Phone">

                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth = "0"/>
                </VisualState.StateTriggers>

                <VisualState.Setters>
                    <Setter Target = "Body.Background"
                 Value = "#21539E" />
                </VisualState.Setters>

            </VisualState>
            <VisualState x:Name="Tablets">

                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth = "720" />
                </VisualState.StateTriggers>

                <VisualState.Setters>
                    <Setter Target = "Body.Background"
                 Value = "Red" />
                </VisualState.Setters>

            </VisualState>
            <VisualState x:Name="Laptop">

                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth = "1024" />
                </VisualState.StateTriggers>

                <VisualState.Setters>
                    <Setter Target = "Body.Background"
                 Value = "Black" />
                </VisualState.Setters>

            </VisualState>
            <VisualState x:Name="PCs">

                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth = "1400" />
                </VisualState.StateTriggers>

                <VisualState.Setters>
                    <Setter Target = "Body.Background"
                 Value = "Green" />
                </VisualState.Setters>

            </VisualState>

        </VisualStateGroup>

    </VisualStateManager.VisualStateGroups>

但是当我对 minimunwindow height 属性做同样的事情时,它就不起作用了。

<VisualStateManager.VisualStateGroups>

        <VisualStateGroup>

            <VisualState x:Name="Phone">

                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowHeight = "0"/>
                </VisualState.StateTriggers>

                <VisualState.Setters>
                    <Setter Target = "Body.Background"
                 Value = "#21539E" />
                </VisualState.Setters>

            </VisualState>
            <VisualState x:Name="Tablets">

                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowHeight = "120" />
                </VisualState.StateTriggers>

                <VisualState.Setters>
                    <Setter Target = "Body.Background"
                 Value = "Red" />
                </VisualState.Setters>

            </VisualState>
            <VisualState x:Name="Laptop">

                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowHeight = "1024" />
                </VisualState.StateTriggers>

                <VisualState.Setters>
                    <Setter Target = "Body.Background"
                 Value = "Black" />
                </VisualState.Setters>

            </VisualState>
            <VisualState x:Name="PCs">

                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowHeight = "1400" />
                </VisualState.StateTriggers>

                <VisualState.Setters>
                    <Setter Target = "Body.Background"
                 Value = "Green" />
                </VisualState.Setters>

            </VisualState>

        </VisualStateGroup>

    </VisualStateManager.VisualStateGroups>

我做错了什么,如何正确实现最小窗口高度?

【问题讨论】:

  • 你的代码看起来很合理。你在什么屏幕分辨率上测试这个?另外,不确定使用“有效像素”的MinWindowHeight 是否有所作为?

标签: c# wpf xaml win-universal-app windows-10-universal


【解决方案1】:

您的代码适用于我,唯一的问题是您可能看不到任何与我相同的变化。

这是因为 MinWindowHeight 的大小在 'effective pixels' 中,而不是在显示器的像素中,因此您无法像触发 AdaptiveTrigger 那样拉伸窗口。

尝试将您的 MinWindowHeight 大小更改为 400、500、600、700,您会看到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-29
    • 2015-08-17
    • 2011-08-01
    • 2020-09-09
    • 2016-08-18
    • 1970-01-01
    • 2014-02-11
    • 2023-03-09
    相关资源
    最近更新 更多