¿Es posible rotar una ventana de WPF en 45 grados, usando xaml?Cómo rotar una ventana de WPF?
Respuesta
Primera pregunta: ¿Por qué quiere hacer girar toda la ventana?
Si realmente lo necesitan:
No se puede girar la ventana normal de WPF. Ver: Rotate Window
Deberá crear una ventana sin bordes y proporcionarle una IU. Ver: WPF Non-Client Area Design Techniques For Custom Window Frames
Para ver la ventana girada:
Set:
- propiedad allowtransparency a cierto.
- WindowStyle a Ninguno para remove ventana cromo
- Antecedentes a transparente
Incluir un borde (o nada significativo como rectángulo, círculo, elipse, etc.) como el contenido de la ventana y siguientes propiedades de frontera:
- fondo blanco (o cualquier color no transparente) transformación
- rotación, y
- tamaño más pequeño (para que quepa cuando se gira dentro de la ventana).
Borde proporcionará la interfaz de usuario a su ventana.
Tenga en cuenta los cavaets de crear su propia ventana sin bordes, ya que requiere que proporcione la interfaz de la ventana como minimizar, maximizar, cerrar botones; y puede requerir algún código no administrado.
Además, en el código de ejemplo siguiente, el borde cuando se gira tiene que mantenerse dentro de los límites de la ventana, de lo contrario se recortará (y su ventana personalizada).
Código de ejemplo
<Window x:Class="CustomWindowStyle.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
AllowsTransparency="True" WindowStyle="None" Background="Transparent"
Title="MainWindow" Height="600" Width="600">
<Border BorderBrush="Green" BorderThickness="2" Background="White" Width="360" Height="360">
<Border.RenderTransform>
<RotateTransform Angle="-45" CenterX="180" CenterY="180"/>
</Border.RenderTransform>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="23" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button Grid.Row="0" Content="X" Height="23" Width="23" Name="button1" HorizontalAlignment="Right" VerticalAlignment="Top" Click="button1_Click"/>
<Grid Grid.Row="1">
<!--Main window content goes here-->
<TextBlock Text="Main window content goes here" HorizontalAlignment="Center" />
</Grid>
</Grid>
</Border>
</Window>
Por lo que sé, no puede rotar una ventana completa, pero puede poner todo dentro de la ventana en un control personalizado y aplicar aplicar un objeto RenderTransform al control personalizado.
Ejemplo (algo simple):
http://www.codeproject.com/KB/WPF/TransformationsIntro.aspx
- Dan
- 1. Tener una ventana wpf dentro de otra ventana wpf
- 2. ¿Minimiza una ventana en WPF?
- 3. cerrar una ventana de otro en WPF
- 4. ¿Cómo obtener una referencia estática a una ventana de WPF?
- 5. diseño de WPF en una ventana
- 6. Precarga de ventana WPF
- 7. Cargando una ventana de WPF sin mostrarlo
- 8. ¿Cómo establecer la ubicación de una ventana de WPF?
- 9. Posición de ventana de WPF
- 10. Tamaño de ventana de WPF
- 11. WPF Ventana establecida Enfoque
- 12. ¿Cómo rotar una ventana en la herramienta de creación de interfaz xCode 4?
- 13. Cómo establecer un fondo de ventana WPF?
- 14. ¿Cómo crear una ventana personalizada de cromo en wpf?
- 15. ¿Cómo llevar una ventana de WPF al frente?
- 16. ¿Cómo hacer una ventana de plantilla en WPF?
- 17. ¿Cómo enviar una ventana de WPF a la parte posterior?
- 18. Cómo animar una ventana?
- 19. Cómo rotar una matriz 2D de enteros
- 20. WPF ventana emergente
- 21. WPF. Cómo ocultar/mostrar la ventana principal desde otra ventana
- 22. ¿Cómo recibir notificaciones cuando una ventana se enfoca en WPF?
- 23. WPF/XAML: ¿Cómo dimensiono una ventana sin borde?
- 24. ¿Cómo implemento una ventana sin bordes con WPF?
- 25. WPF: Cómo iniciar desde una ventana en un montaje distinto
- 26. PHP: 'rotar' una matriz?
- 27. ¿Cómo puedo abrir una ventana emergente WPF con un retraso?
- 28. ¿Cómo sé qué monitor es una ventana WPF en
- 29. WPF: ¿Cómo recorro todos los controles en una ventana?
- 30. WPF: ¿Cómo interactuar con la ventana inactiva?
Gracias, quería dar el control de usuario para girar la ventana interactiva para que la aplicación sea más interesante. Esta es una aplicación similar a un juego, así que quería controlar la gravedad en función de la orientación de la ventana, sé que esto es tonto, pero esa es la idea. –
Tenía la corazonada de que debe ser para un juego como una aplicación. :) De todos modos, quiero agregar eso (aunque implícito): 1.el borde se puede reemplazar por algo significativo, p. elipse, círculo, etc. y, 2. para el fondo del borde no necesariamente tiene que ser blanco, puede ser cualquier color no transparente. – publicgk