2012-08-28 17 views
5

Nie mogę wymyślić, jak kontrolować rozmiar mojej aplikacji, jednocześnie pozwalając na zmianę rozmiaru zawartości za pomocą głównego okna. Jest to aplikacja WPF i używam Caliburn Micro (najpierw ViewModel) i wszystkie moje widoki są UserControls.Ustawianie rozmiaru aplikacji wpf/caliburn.micro przy jednoczesnym umożliwieniu zmiany rozmiaru zawartości z głównym oknem.

Chcę główny widok UserControl (w zasadzie siatka, która zawiera inne formanty użytkownika z własnymi modelami widoku), aby rozciągnąć i wypełnić cały obszar głównego okna aplikacji. Dlatego ustawiłem HorizontalAlignment i VerticalAlignment na widoku głównym na Rozciągnięcie. Ale to nie działa tak, jak chcę.

Jeśli ustawię wysokość & Szerokość na głównym widoku do pewnej wartości, to pozwala mi kontrolować rozmiar głównego okna aplikacji, ale widok będzie ustalony na stałe i nie zmieni rozmiaru z głównym oknem.

Jeśli ustawię wysokość & Szerokość w widoku głównym na Auto, rozmiar okna aplikacji dostosuje się do rozmiaru głównego widoku, a nie odwrotnie.

Czego chcę, aby zawartość okna aplikacji (okno jest automatycznie tworzone przez Caliburn.Micro dla głównego widoku) rozciąga się, aby wypełnić okno aplikacji, którego rozmiar ustawiłem w jakiś sposób, nie mogę dowiedzieć się, jak to zrobić.

Mam nadzieję, że możesz pomóc, utknąłem!

Odpowiedz

0

Usuń wysokość i szerokość, które ustawiłeś dla potomnych kontrolek &, użyj właściwości UIElement.CliptoBounds i ustaw ją na True.

http://msdn.microsoft.com/en-us/library/system.windows.uielement.cliptobounds.aspx

+0

Ale to kontroluje jak elementy są obcięte. To nie jest mój główny problem tutaj. Jak ustawić ogólny rozmiar uruchamiania aplikacji, jednocześnie pozwalając, aby siatka w głównym widoku zmieniała rozmiar po uruchomieniu aplikacji? – Liell

+0

http://stackoverflow.com/questions/36108/how-to-get-controls-in-wpf-to-fill-available-space – Rauld

9

Zdaję sobie sprawę, kwestia ta jest bardzo stara i prawdopodobnie odnosi się do Caliburn.Micro v1, ale tylko w przypadku kogoś innego, jak mi przyjdzie, tutaj jest rozwiązanie dla Caliburn.Micro v2.

W OnStartup funkcji twojego inicjującego jest, wystarczy ustawić Width, Height i SizeToContent.Manual ustawienia do funkcji DisplayRootViewFor jak zrobić poniżej:

protected override void OnStartup(object sender, StartupEventArgs e) 
{ 
    var settings = new Dictionary<string, object> 
    { 
     { "SizeToContent", SizeToContent.Manual }, 
     { "Height" , 600 }, 
     { "Width" , 1024 }, 
    }; 

    DisplayRootViewFor<IShell>(settings); 
} 
+1

Dzięki - ustawienia SizeToContent wydawało się załatwić sprawę! – Govert

Powiązane problemy