2012-06-18 34 views
6

Tôi đang cố gắng đạt được hiệu ứng chồng chéo ranh giới cửa sổ chính bằng điều khiển. Thật khó để giải thích điều này bằng những từ mà cũng có thể là lý do tại sao tôi gặp khó khăn trong việc tìm kiếm thông tin về cách làm điều này hoặc nếu nó thậm chí có thể.Hiển thị nội dung wpf trên/ngoài các giới hạn cửa sổ chính

Dưới đây là ví dụ về hiệu ứng tôi đang cố gắng nhận (từ nhà thiết kế), nơi các đối tượng "ghi chú" nằm bên ngoài các giới hạn của cửa sổ chính.

Example 1

Tuy nhiên hiệu quả tôi nhận được trong thời gian chạy là thế này (dưới đây), các điều khiển bên trong được cắt bớt bởi ranh giới của cửa sổ chính.

Example 2

Ai đó có thể xin vui lòng cho tôi biết nếu điều này là có thể (hoặc không), và nếu nó là có thể một số gợi ý về làm thế nào tôi có thể nhận được hiệu ứng này.

+1

bạn đã xem là sử dụng một 'Popup'? –

+0

Cảm ơn, tôi nghĩ rằng kiểm soát Popup là cách để đi –

Trả lời

1

Tôi không nghĩ rằng có một cách để vẽ ra ngoài giới hạn của một cửa sổ. Tuy nhiên, bạn có thể chỉ cần tạo một cửa sổ mới cho điều khiển ghi chú và căn chỉnh cửa sổ đó với cửa sổ chính của bạn.

+0

Câu trả lời khác dường như phủ nhận điều này. – ANeves

+0

Điều khiển bật lên thực sự tạo một cửa sổ mới trong nội bộ, như tôi đã đề xuất trong câu trả lời. – Michael

+0

Điều đó đúng. Có lẽ bạn có thể mở rộng câu trả lời của bạn với một lời giải thích ngắn về cách sử dụng một popup sẽ tương tự như chỉ cần tạo ra một cửa sổ mới là tốt. – ANeves

2

Nội dung của cửa sổ sẽ luôn bị cắt bớt. Vì vậy, về cơ bản chỉ có một cách để đi đến đây. Bạn có thể nhận được hiệu ứng mong muốn bằng cách tạo một cửa sổ trong suốt mới cho nội dung nổi của bạn và sau đó manualy thiết lập và cập nhật vị trí của cửa sổ nội dung nổi dựa trên vị trí của cửa sổ chính.

Cho đến nay tôi đã sử dụng AvalonDock cho chức năng tương tự. Bạn có thể cung cấp cho nó một thử ...

5

Có một điều khiển mà có thể đạt được như thế này là một hành vi có bạn thử một Popup kiểm soát
việc kiểm tra này ra http://msdn.microsoft.com/en-us/library/bb613596(v=vs.110).aspx

Tôi có một ví dụ để làm như vậy

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

Các vấn đề liên quan