Mam okno wpf z dwoma kontrolkami użytkownika, wewnątrz których drugi jest wyświetlany tylko w razie potrzeby. Ustawiam tylko MinWidth okna w XAML, MinHeight jest dostarczany przez zestaw danych i zestaw jest zależny od tego, czy pokazane jest drugie sterowanie użytkownika. Teraz: Jak ustawić rozmiar okna na wartości inne niż MinWidth/Height w czasie wykonywania. Próbowałem ustawić wartości przed Show(), po Show(), w różnych zdarzeniach (Initialized, Loaded, itp.). Próbowałem z i bez UpdateLayout(), próbowałem ustawić wysokość/szerokość poprzez wiązanie danych. Nic nie działa! Ale kiedy debuguję podejścia, widzę, że właściwości Wysokość/Szerokość okna są ustawione na wartości oczekiwane, ale wartość ActualHeight/Width pozostaje. Myślałem, że to będzie bagatelle, ale okazało się, że to nie jest (dla mnie). Twoje za jakąkolwiek pomoc.Zmienianie rozmiaru okna wpf programowo w C#
6
A
Odpowiedz
8
Próbowałeś ustawić
Application.Current.MainWindow.Height = 100;
Krótki dodatek: Właśnie zrobiłem krótki test, w postaci kodu:
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;
}
}
i 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>
Kliknij przycisk Ustawia wysokość okna. Czy tego właśnie szukasz?
1
Nie masz wielu informacji, więc po prostu zgaduję.
Jedynym sposobem na odtworzenie okna niezgodnego z ustawieniem szerokości i wysokości było ustawienie SizeToContent
na WidthAndHeight
.
1
jeśli ktoś jest nadal zmaga się z tym, jedyną rzeczą, którą musisz zrobić to:
Jeśli chcesz zmienić rozmiar okna głównego po prostu napisać następujący kod.
Application.Current.MainWindow.Height = 420;
Jeśli chcesz zmienić rozmiar nowego okna innego niż głównego okna wystarczy napisać następujący kod w pliku .cs nowego okna.
Application.Current.MainWindow = this;
Application.Current.MainWindow.Width = 420;
Mam nadzieję, że to pomaga.
Powiązane problemy
- 1. Niepotrzebne zmienianie rozmiaru okna formularza
- 2. Dynamiczne zmienianie rozmiaru okna JQuery
- 3. Wyłącz Zmienianie rozmiaru okna przeglądarki
- 4. Automatyczne zmienianie rozmiaru widoku podrzędnego utworzonego programowo
- 5. Automatyczne zmienianie rozmiaru wiersza TableLayoutPanel po zmianie rozmiaru okna
- 6. WPF Zmiana rozmiaru okna bez obramowania
- 7. Automatyczne zmienianie rozmiaru obrazu na podstawie wymiarów okna przeglądarki
- 8. Zmienianie rozmiaru UIViews
- 9. Automatyczne zmienianie rozmiaru formantów Windows Forms
- 10. Ręczne zmienianie rozmiaru pliku JPanel
- 11. Ukrywanie tekstu Zmienianie rozmiaru uchwytu w Safari
- 12. Ekspander WPF i zmiana rozmiaru okna po zwinięciu?
- 13. ustalanie rozmiaru okna w vim
- 14. Zmiana rozmiaru okna w pionie
- 15. C# WPF Nie można uzyskać okna nadrzędnego
- 16. Zmiana rozmiaru okna Windrooka
- 17. Jak uzyskać ClientSize okna WPF?
- 18. Wyłącza nieprzezroczyste zmienianie rozmiaru separatora QMainWindow/QDockWidget
- 19. Panel JavaFX wewnątrz panelu Automatyczne zmienianie rozmiaru
- 20. Zmienianie rozmiaru spinacza i przycinanie do prostokąta
- 21. Jak programowo wyświetlić WPF/C# Windows.Control.ToolTip?
- 22. Zmienianie rozmiaru zawartości po wyświetleniu paska stanu iPhone/ukryty
- 23. Zmiana rozmiaru UITableView programowo
- 24. Zmienianie katalogu roboczego w C?
- 25. Zmiana rozmiaru UIView programowo
- 26. Zmiana rozmiaru okna w celu wyświetlenia rozmiaru kontrolki w scenorysie
- 27. Tworzenie okna HUD programowo
- 28. Anuluj zamknięcie okna w WPF
- 29. Wyświetlane zdarzenie okna w WPF?
- 30. Uzyskiwanie uchwyt okna w C#
To brzmi trochę dziwnie. Okna powinny respektować twoje ustawienia szerokości i wysokości. Czy mógłbyś opublikować przykład minowy? – Jens
Czy możliwe jest ustawienie parametru 'Window.SizeToContent' na coś innego niż' Manual'? Jeśli tak, to 'Width' i/lub' Height' będą efektywnie oddzielone od 'ActualWidth' i' AcutalHeight'. – dlf