簡體   English   中英

在 WPF 中管理應用程序高度(以屏幕高度的百分比表示高度)

[英]Managing Application height in WPF (Expressing height as a percentage of screen height)

所以我在我的顯示器上創建了一個 WPF 應用程序,它具有更大的高度(1280 對 1024)分辨率。 它在我的顯示器上運行良好。

但是當我把它帶到不同分辨率的顯示器上時,整個應用程序超出了顯示器,因此無法使用。

知道我們如何糾正這個問題。 我的控件和 window 的所有高度都是固定的

WPF 並沒有真正被設計為像 WinForms 那樣處理,因為絕對控件的寬度、高度和位置會導致這些情況。 它被設計成流動的,允許控件包裹(參見WrapPanel )、展開和折疊(參見 Auto 或 * 大小)。 如果您將其視為 WinForms,您將遇到這些問題並且必須想出復雜的解決方法。 WPF 被設計為那些復雜變通辦法的永久解決方案(除其他外)

嘗試尋找 WPF 的基礎教程,以了解應該如何布局 UI。

希望有幫助。

這很簡單。 降低 window 的高度。 為什么要使用大固定高度window? 顯然我不知道您的應用程序的設計,但正如您很快發現的那樣,固定的高度(和寬度)往往不能跨不同的硬件進行移植。

您真正的解決方案可能是使用 WPF Grid控件。 您的所有控件都應位於網格中,該網格填充了整個 window。 根據您設置網格行和列的方式,您的控件將隨着 window 大小的變化而縮放。

假設您有四個控件要均勻地堆疊在網格中。 你可以這樣做:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height=".25*"/>
        <RowDefinition Height=".25*"/>
        <RowDefinition Height=".25*"/>
        <RowDefinition Height=".25*"/>
    </Grid.RowDefintions>
    <MyControl Grid.Row="0"/>
    <MyControl Grid.Row="1"/>
    <MyControl Grid.Row="2"/>
    <MyControl Grid.Row="3"/>
</Grid>

現在每個控件占用 25% 的可用空間,並且 WPF 會隨着您的 window 大小的變化處理所有事情。 你可以做比這更復雜的布局,但希望這能讓你開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM