【问题标题】:Displaying wpf content over/outside main window bounds [closed]在主窗口边界上方/外部显示 wpf 内容 [关闭]
【发布时间】:2012-06-20 03:30:39
【问题描述】:

我正在尝试实现将主窗口边界与控件重叠的效果。很难用语言来解释这一点,这也可能是为什么我很难找到有关如何执行此操作或什至可能的信息的原因。

下面是我试图获得的效果示例(来自设计师),其中“注释”对象漂浮在主窗口的边界之外。

但是我在运行时得到的效果是这样的(下图),内部控件被主窗口的边界剪裁了。

有人可以告诉我这是否可能(或不可能),以及是否有一些关于如何获得这种效果的建议。

【问题讨论】:

  • 您考虑过使用Popup吗?
  • 谢谢,我认为 Popup 控件是要走的路

标签: c# wpf xaml clipping mainwindow


【解决方案1】:

有一个控件可以实现这种行为你试过Popup控件吗? 检查this out

这是一个例子;e"

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <ToggleButton x:Name="MainButton" Content="Show popup" VerticalAlignment="Top" HorizontalAlignment="Right"/>
    <Popup PlacementTarget="{Binding ElementName=MainButton}" Placement="Bottom" AllowsTransparency="True" IsOpen="{Binding ElementName=MainButton, Path=IsChecked}">
        <Grid>
            <Border BorderBrush="Orange" BorderThickness="1" Background="Yellow"/>
            <TextBlock Text="Lorem Ipsum is simply dummy text of the printing and typesetting industry"/>
        </Grid>            
    </Popup>
</Grid>

【讨论】:

    【解决方案2】:

    窗口的内容总是会被剪裁。所以基本上只有一种方法可以去这里。您可以通过为浮动内容创建一个新的透明窗口,然后根据主窗口的位置手动设置和更新浮动内容窗口的位置来获得所需的效果。

    到目前为止,我一直在使用 AvalonDock 来实现类似的功能。你可以试试看……

    【讨论】:

      【解决方案3】:

      我认为没有办法在窗口边界之外进行绘制。但是,您可以简单地为便笺控件创建一个新窗口并将其与主窗口对齐。

      【讨论】:

      • 另一个答案似乎否定了这个。
      • 弹出控件实际上在内部创建了一个新窗口,正如我在答案中所建议的那样。
      • 确实如此。也许您可以通过简短的解释来扩展您的答案,说明使用弹出窗口同样也会创建一个新窗口。
      【解决方案4】:

      你试过ClipToBounds属性吗?

      【讨论】:

        猜你喜欢
        • 2011-07-18
        • 1970-01-01
        • 2010-10-27
        • 2011-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-04
        相关资源
        最近更新 更多