Tengo una ventana wpf con dos controles de usuario dentro de los cuales el segundo solo se muestra cuando es necesario. Solo configuro el MinWidth de la ventana en XAML, el MinHeight se proporciona a través de un enlace de datos, dependiendo de si se muestra el segundo control de usuario. Ahora: ¿Cómo puedo establecer el tamaño de la ventana a valores diferentes a MinWidth/Height durante el tiempo de ejecución? Intenté configurar los valores antes del Show(), después del Show(), en varios eventos (Initialized, Loaded, etc.). Intenté con y sin UpdateLayout(), traté de configurar el alto/ancho a través de enlace de datos. ¡Nada funciona! Pero cuando depuro los enfoques, veo que las propiedades Altura/Ancho de la ventana se establecen en los valores esperados, pero permanecen ActualHeight/Width. Pensé que sería una bagatela, pero resultó que no es (para mí). Thy por cualquier ayuda.Cambiar el tamaño de la ventana wpf programáticamente en C#
6
A
Respuesta
8
¿Ha intentado ajustar
Application.Current.MainWindow.Height = 100;
Además corta: Acabo de hacer una prueba corta, en código:
public partial class MainWindow : Window, INotifyPropertyChanged
{
private int _height;
public int CustomHeight
{
get { return _height; }
set
{
if (value != _height)
{
_height = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("CustomHeight"));
}
}
}
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
CustomHeight = 500;
}
public event PropertyChangedEventHandler PropertyChanged;
private void Button_Click(object sender, RoutedEventArgs e)
{
CustomHeight = 100;
}
}
y el XAML:
<Window x:Class="WindowSizeTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="{Binding CustomHeight, Mode=TwoWay}" Width="525">
<Grid>
<Button Click="Button_Click">Test</Button>
</Grid>
Haga clic en el botón establece el altura de la ventana ¿Es eso lo que estás buscando?
1
No se ha dado mucha información, así que solo estoy adivinando aquí.
La única forma en que pude reproducir la ventana sin respetar su configuración de ancho y alto fue cuando establecí SizeToContent
en WidthAndHeight
.
1
si alguien todavía está luchando con esto, lo único que tiene que hacer es la siguiente:
Si desea cambiar el tamaño de la ventana principal acaba de escribir el siguiente código.
Application.Current.MainWindow.Height = 420;
Si desea cambiar el tamaño de una ventana nueva que no sea la ventana principal acaba de escribir el siguiente código en el archivo .cs de la nueva ventana.
Application.Current.MainWindow = this;
Application.Current.MainWindow.Width = 420;
Espero que ayude.
Cuestiones relacionadas
- 1. Escuchar otra ventana Cambiar el tamaño de eventos en C#
- 2. Cambiar el tamaño de UITableView programáticamente
- 3. cambiar el tamaño del texto (tamaño de fuente) al cambiar el tamaño de la ventana?
- 4. Tamaño de ventana de WPF
- 5. ¿Cómo cambiar el tamaño de la ventana de WPF de forma dinámica?
- 6. Desactivar ventana del navegador Cambiar el tamaño
- 7. Cambiar la imagen de fondo de la ventana de WPF en el código de C#
- 8. Problema de rendimiento WPF al cambiar el tamaño de la ventana con muchos controles
- 9. Obtener ListBox para cambiar el tamaño con la ventana, pero no cambiar el tamaño del contenido
- 10. Cambiar el contenido de la ventana de WPF
- 11. emacs cambiar el tamaño de la ventana por programación
- 12. Cambiar el tamaño de la ventana usando QPropertyAnimation
- 13. ¿Puedo cambiar el tamaño de la ventana del navegador?
- 14. Cambiar el tamaño de la ventana con actionscript 3.0
- 15. Cómo detectar ventana era cambiar el tamaño Windows7
- 16. Cambiar la ubicación de inicio de una ventana de WPF
- 17. jQuery UI Posición: Al cambiar el tamaño de la ventana
- 18. Cambiar el tamaño de Colorbox en el tamaño de la ventana
- 19. Cambiar el tamaño del mapa de imagen en el tamaño de la ventana
- 20. GWT cambiar el tamaño y el centro de la ventana emergente cuando el tamaño de la ventana del navegador
- 21. WPF usando ResizeGrip para cambiar el tamaño de los controles
- 22. ¿Cómo cambiar el tamaño de la altura máxima de un div al cambiar el tamaño de la ventana?
- 23. Cambiar el tamaño del lote de hibernación programáticamente
- 24. C# WPF - Línea negra en la ventana
- 25. cambio de tamaño de la cuadrícula al cambiar el tamaño de la ventana del navegador
- 26. Cambiar el tamaño de una ventana WPF, pero mantener las proporciones?
- 27. Mac OS X - cambiar el tamaño programáticamente de Windows
- 28. C# WPF - Cómo cambiar qué ventana se abre primero
- 29. cambiar dinámicamente el tamaño div en función del tamaño de la ventana del navegador
- 30. ¿Cómo puedo cambiar un valor programáticamente en el Registro de la ventana?
Eso suena un poco raro. Las ventanas deben respetar sus configuraciones de ancho y alto. ¿Podría publicar un pequeño ejemplo? – Jens
¿Es posible que tenga 'Window.SizeToContent' establecido en algo que no sea' Manual'? Si es así, 'Ancho' y/o 'Altura' se desacoplarán efectivamente de 'ActualWidth' y' AcutalHeight'. – dlf