【问题标题】:Is it possible to create window that larger than the screen?是否可以创建比屏幕大的窗口?
【发布时间】:2019-01-11 05:21:03
【问题描述】:

我有一个我创建的应用程序,它会根据其内容而增加。内容宽度可能会不时变化。当窗口的大小变得比屏幕大时,窗口会被剪切。

是否可以制作比屏幕更大的窗口?

【问题讨论】:

  • 我只需要这样做。有没有可能?
  • 您想让您的窗口位于可滚动区域内吗?如果是这种情况,您的窗口实际上不会比屏幕大,但窗口中的内容会。
  • 不,我希望窗口比屏幕大
  • 你想玩 MinWidth/MinHeight 吗?
  • “玩”是什么意思?我尝试将其设置为一些值,但没有成功。

标签: wpf


【解决方案1】:

当然可以:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="2000" Width="5000" Left="-10" Top="-10">
    <Grid>

    </Grid>
</Window>

好的,我想你想动态地做,对吧?我可以想到一些代码来检查内容大小并设置窗口大小。

(虽然我不喜欢你想要达到的目标);)

【讨论】:

  • 如果我手动插入高度和宽度,这是一个很好的解决方案。但是如果高度和宽度是自动的,我该怎么做。我需要在 SizeChanged 事件中写一些代码吗?
  • @Alex - 你试过让 MaxHeight 和 MaxWidth 属性变得很大吗?
  • 您可以使用控件的 DesiredSize 属性。每次更改内容时,您都会获得此大小,并且可以使用它来更改窗口的大小。
  • 它不适用于较新版本的 windows。比如windows 10。
  • 如果您希望在内容更改后更新 DesiredSize,您应该调用 Measure 方法。
【解决方案2】:

在 WPF 中,我可以使用以下内容动态创建一个大于屏幕的窗口:

        var window = new Window();
        window.Width = 8620;
        window.Height = 400;

        window.Top = 400;
        window.Left = 0;

        window.WindowStyle = WindowStyle.None;
        window.AllowsTransparency = true;
        window.Show();

我知道它可以工作,因为如果我连接第二台显示器并扩展它,窗口是可见的(设置边框 - 设置 WindowStyle、更改背景颜色或显示内容以查看窗口)。

【讨论】:

    猜你喜欢
    • 2021-10-25
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 2012-05-28
    • 2020-01-15
    • 1970-01-01
    相关资源
    最近更新 更多