2012-06-18 12 views
6

Estoy tratando de lograr un efecto de superposición del límite de la ventana principal con un control. Es difícil explicar esto en palabras, que también es tal vez por qué estoy teniendo dificultades para encontrar información sobre cómo hacer esto o si es posible.Mostrar el contenido de wpf sobre/fuera de los límites de la ventana principal

A continuación se muestra un ejemplo del efecto que estoy tratando de obtener (del diseñador), donde los objetos "notas" flotan fuera de los límites de la ventana principal.

Example 1

Sin embargo el efecto consigo en tiempo de ejecución es este (abajo), los controles internos se recortan por el límite de la ventana principal.

Example 2

¿Puede alguien decirme si esto es posible (o no), y si es tal vez algunas sugerencias sobre cómo podría conseguir este efecto.

+1

Ha considerado el uso de un 'Popup'? –

+0

Gracias, creo que el control Popup es el camino a seguir –

Respuesta

1

No creo que haya una manera de dibujar fuera de los límites de una ventana. Sin embargo, podría simplemente crear una nueva ventana para el control de notas y alinearla a su ventana principal.

+0

La otra respuesta parece negar esta. – ANeves

+0

El control emergente realmente crea una nueva ventana internamente, como sugerí en la respuesta. – Michael

+0

Eso es verdad. Tal vez podrías ampliar tu respuesta con una breve explicación sobre cómo usar una ventana emergente también creará una nueva ventana. – ANeves

2

El contenido de la ventana siempre se recortará. Entonces, básicamente, hay una sola manera de ir aquí. Puede obtener el efecto deseado creando una nueva ventana transparente para su contenido flotante y luego configurar y actualizar manualmente la posición de la ventana de contenido flotante según la ubicación de la ventana principal.

Hasta ahora he estado usando AvalonDock para una funcionalidad similar. Es posible darle una oportunidad ...

5

No es un control que puede lograr este tipo tienen un comportamiento que probar un emergente de control
mira esto http://msdn.microsoft.com/en-us/library/bb613596(v=vs.110).aspx

Tengo un ejemplo para hacerlo

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

Cuestiones relacionadas