在不丢失元素的情况下将窗口调整为较小的屏幕

时间:2016-02-11 18:28:50

标签: wpf window frame scrollviewer

Window with frame containing main page

正如您所看到的,(如果图像正确加载)当我从膝盖上运行程序时,我看不到整个屏幕,也无法滚动查看框架中包含的其余元素。我试图添加一个scrollviewer来包含框架,但滚动条什么都不做,画布的元素被重新定位或消失。我是否包含适合窗口大小的正确代码?我是否必须使用滚动查看器来查看整个窗口或至少框架页面中的元素?

    Height="{x:Static SystemParameters.PrimaryScreenHeight}" 
    Width="{x:Static SystemParameters.PrimaryScreenWidth}" 
    Loaded="Window_Load" WindowState="Maximized">

2 个答案:

答案 0 :(得分:0)

Use $query = "SELECT MAX(id) FROM clients"; in a window as following:

ScrollViewer

A Sample Output: (Bind the <ScrollViewer MaxHeight="{Binding RelativeSource={RelativeSource AncestorType={x:Type Border}},Path=ActualHeight,Mode=OneWay}"> <canvas> ............ </ScrollViewer> of MaxWidth also if there is problem with Scrollviewer too)

scrollviewer

答案 1 :(得分:0)

  

在不丢失元素的情况下将窗口调整为较小的屏幕

我想我会说很多话,我们强烈建议您远离Canvas来执行布局。正如您在评论中提到的那样,Canvas可以轻松实现,因为它与创建基于窗体的简单窗体应用程序的方式非常接近。

WPF布局面板专门针对您的要求而设计。

可能的结构是

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <TextBlock Text="Location"/>
        <TextBlock Grid.Row="1" Grid.Column="0" Text="Product Line"/>
        <TextBlock Grid.Row="2" Grid.Column="0" Text="Search"/>
        <ScrollViewer Grid.Row="0" Grid.Column="1" Grid.RowSpan="3">
            <StackPanel>
               ...
            </StackPanel>
        </ScrollViewer>
    </Grid>