在主窗口边界上/外显示wpf内容

时间:2012-06-18 06:56:11

标签: c# wpf xaml clipping mainwindow

我试图实现将主窗口边界与控件重叠的效果。很难用文字解释这一点,这也可能是为什么我很难找到有关如何做到这一点的信息,或者甚至是否可能。

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

Example 1

然而,我在运行时获得的效果是这个(下图),内部控件被主窗口的边界剪切。

Example 2

有人可以告诉我这是否可能(如果可能),以及是否有一些建议可以解决这个问题。

4 个答案:

答案 0 :(得分:6)

有一个控件可以实现这种行为你尝试过 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>

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

我认为没有办法在窗户的范围之外画画。但是,您可以简单地为音符控件创建一个新窗口,并将其与主窗口对齐。

答案 3 :(得分:0)

您是否尝试过ClipToBounds属性?