ventana modal emergente c# wpf xaml resize

modal - Cambiar el tamaño de la ventana wpf programáticamente en c#



ventana emergente c# wpf (3)

¿Has intentado establecer

Application.Current.MainWindow.Height = 100;

Breve adición: 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 la altura de la ventana. ¿Es eso lo que estás buscando?

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 diferentes valores que el 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.


No has dado mucha información, así que solo estoy adivinando aquí.

La única forma en que pude reproducir la ventana sin respetar sus configuraciones de ancho y alto fue cuando configuré SizeToContent en WidthAndHeight .


si alguien todavía está luchando con esto, lo único que tienes que hacer es lo siguiente:

Si desea cambiar el tamaño de la ventana principal, solo escriba 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, solo escriba el siguiente código en el archivo .cs de la nueva ventana.

Application.Current.MainWindow = this; Application.Current.MainWindow.Width = 420;

Espero eso ayude.