2012-06-18 2 views
6

Я пытаюсь добиться эффекта перекрытия границы главного окна с помощью элемента управления. Трудно объяснить это в словах, что также может быть связано с тем, что мне трудно найти информацию о том, как это сделать или если это возможно.Отображение содержимого wpf поверх/вне границ главного окна

Ниже приведен пример эффекта, который я пытаюсь получить (от дизайнера), где объекты «note» плавают за пределами главного окна.

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>