2012-06-18 111 views
6

我正試圖實現將主窗口邊界與控件重疊的效果。這很難用文字來解釋,這也可能是爲什麼我很難找到關於如何做到這一點的信息,或者甚至有可能。在主窗口邊界之外顯示wpf內容

下面是我試圖從設計器中獲得的效果的一個示例,其中「音符」對象在主窗口​​的邊界之外浮動。

Example 1

但是我在運行時得到的效果是這樣的(下圖),內控制由主窗口的邊界裁剪。

Example 2

是否有人可以告訴我,如果這是可能的(或沒有),如果是,也許,我怎麼能得到這樣的效果提出了一些建議。

+1

你有使用'Popup'考慮? –

+0

謝謝,我認爲彈出控制是要走的路線 –

回答

1

我不認爲有一種方法可以在窗口的邊界之外繪圖。但是,您可以簡單地爲音符控件創建一個新窗口並將其與主窗口對齊。

+0

另一個答案似乎否定了這一個。 – ANeves

+0

Popup控件實際上在內部創建一個新窗口,正如我在答案中所建議的那樣。 – Michael

+0

的確如此。也許你可以用一個簡短的解釋來擴展你的答案,如何使用彈出窗口同樣也會創建一個新窗口。 – ANeves

2

窗口的內容將始終被剪切。所以基本上只有一條路可走。您可以通過爲浮動內容創建一個新的透明窗口,然後手動設置並根據主窗口的位置更新浮動內容窗口的位置,從而獲得所需的效果。

到目前爲止,我一直在使用AvalonDock來實現類似的功能。你可以試試看......

5

有能夠實現這種行爲控制有你嘗試彈出控制
檢查了這一點http://msdn.microsoft.com/en-us/library/bb613596(v=vs.110).aspx

我有一個例子,這樣做

<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>