2012-08-28 20 views
5

Tôi không thể tìm ra cách kiểm soát kích thước ứng dụng của mình trong khi cho phép nội dung thay đổi kích thước bằng cửa sổ chính. Nó là một ứng dụng WPF và tôi đang sử dụng Caliburn Micro (ViewModel đầu tiên) và tất cả các quan điểm của tôi là UserControls.Kích thước thiết lập của ứng dụng wpf/caliburn.micro trong khi cho phép nội dung thay đổi kích thước bằng cửa sổ chính.

Tôi muốn chế độ xem chính UserControl (về cơ bản là lưới có chứa các điều khiển người dùng khác với các kiểu xem riêng) để kéo dài và điền vào toàn bộ khu vực cửa sổ chính của ứng dụng. Vì vậy, tôi đã thiết lập HorizontalAlignment và VerticalAlignment trên khung nhìn chính để Stretch. Nhưng điều này không hoạt động như tôi muốn.

Nếu tôi đặt Chiều cao & Chiều rộng trên giao diện chính thành một số giá trị, điều này cho phép tôi kiểm soát kích thước cửa sổ chính của ứng dụng, nhưng chế độ xem sẽ được cố định và không đổi kích thước với cửa sổ chính.

Nếu tôi đặt Chiều cao & Chiều rộng ở chế độ xem chính thành Tự động, khi đó kích thước cửa sổ ứng dụng sẽ điều chỉnh theo kích thước của chế độ xem chính, không phải theo cách khác.

Điều tôi muốn là nội dung của cửa sổ ứng dụng (cửa sổ được tạo tự động bởi Caliburn.Micro cho chế độ xem chính) trải dài để điền vào cửa sổ ứng dụng, kích thước mà tôi đã đặt theo cách nào đó mà tôi không thể tìm ra cách để làm.

Hy vọng bạn có thể trợ giúp, tôi bị kẹt!

Trả lời

0

Xóa chiều cao và chiều rộng mà bạn đã đặt cho điều khiển con yr & sử dụng thuộc tính UIElement.CliptoBounds và đặt thành True.

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

+0

Nhưng điều khiển như thế nào yếu tố được cắt bớt. Đó không phải là vấn đề chính của tôi ở đây. Làm thế nào để tôi thiết lập kích thước khởi động chung của ứng dụng trong khi cho phép lưới trong giao diện chính thay đổi kích thước với ứng dụng sau khi khởi động? – Liell

+0

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

9

Tôi nhận ra câu hỏi này là rất cũ và có lẽ đề cập đến Caliburn.Micro v1, nhưng chỉ trong trường hợp người khác như tôi đến cùng, đây là giải pháp cho Caliburn.Micro v2.

Trong chức năng của Bootstrapper bạn OnStartup, bạn chỉ cần thiết lập Width, HeightSizeToContent.Manual thiết lập vào DisplayRootViewFor chức năng như thực hiện dưới đây:

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

Cảm ơn - cài đặt SizeToContent dường như thực hiện thủ thuật! – Govert