Tôi có cửa sổ wpf với hai liên kết người dùng bên trong, trong đó cửa sổ thứ hai chỉ hiển thị khi cần. Tôi chỉ thiết lập MinWidth của cửa sổ trong XAML, MinHeight được cung cấp thông qua databinding một tập ist phụ thuộc vào nếu usercontrol thứ hai được hiển thị. Bây giờ: Làm thế nào tôi có thể đặt kích thước của cửa sổ thành các giá trị khác với MinWidth/Height trong suốt thời gian chạy. Tôi đã thử thiết lập các giá trị trước Show(), sau Show(), trong các sự kiện khác nhau (Khởi tạo, Nạp, vv). Tôi đã thử với và không có UpdateLayout(), tôi đã cố gắng thiết lập chiều cao/chiều rộng thông qua Databinding. Không có gì hiệu quả! Nhưng khi tôi gỡ lỗi các phương pháp tiếp cận, tôi thấy rằng các thuộc tính Chiều cao/Chiều rộng của cửa sổ được đặt thành giá trị dự kiến, nhưng Độ dài ActualHeight/Chiều rộng vẫn giữ nguyên. Tôi nghĩ rằng nó sẽ là một chiếc bánh mì kẹp thịt nhưng hóa ra nó không phải là (đối với tôi). Thy cho bất kỳ sự giúp đỡ nào.Thay đổi kích thước cửa sổ wpf theo lập trình trong C#
6
A
Trả lời
8
Bạn đã cố gắng để thiết lập
Application.Current.MainWindow.Height = 100;
Ngoài Ngắn: Tôi chỉ cần làm một bài kiểm tra ngắn, trong mã:
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;
}
}
và 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>
Nhấp vào nút Đặt chiều cao cửa sổ. Đó là những gì bạn đang tìm kiếm?
1
Bạn không có nhiều thông tin nhất định, vì vậy tôi chỉ đoán ở đây.
Cách duy nhất tôi có thể tạo lại cửa sổ không tôn trọng cài đặt chiều rộng và chiều cao là khi tôi đặt SizeToContent
thành WidthAndHeight
.
1
nếu ai đó vẫn đang phải vật lộn với điều này, điều duy nhất bạn phải làm là như sau:
Nếu bạn muốn thay đổi kích thước cửa sổ chính chỉ cần viết đoạn mã sau.
Application.Current.MainWindow.Height = 420;
Nếu bạn muốn đổi kích thước cửa sổ mới không phải cửa sổ chính, chỉ cần viết mã sau vào tệp .cs của cửa sổ mới.
Application.Current.MainWindow = this;
Application.Current.MainWindow.Width = 420;
Hy vọng điều đó sẽ hữu ích.
Các vấn đề liên quan
- 1. emacs lập trình thay đổi kích thước cửa sổ
- 2. Thay đổi kích thước cửa sổ theo chiều dọc
- 3. thay đổi kích thước lưới khi đổi kích thước cửa sổ trình duyệt
- 4. Thay đổi kích thước svg khi cửa sổ được thay đổi kích thước trong d3.js
- 5. Tự động thay đổi kích thước div dựa trên kích thước của cửa sổ trình duyệt
- 6. Phóng to cửa sổ theo lập trình và ngăn người dùng thay đổi cửa sổ
- 7. JQUERY UI Accordion Thay đổi kích thước trên cửa sổ Thay đổi kích thước?
- 8. fullcalendar - thay đổi kích thước lịch trên cửa sổ thay đổi kích thước
- 9. Tự động thay đổi kích thước hàng TableLayoutPanel khi cửa sổ được thay đổi kích thước
- 10. cách thay đổi kích thước một ImageView theo Lập trình
- 11. Autolayout đang thay đổi kích thước cửa sổ của tôi
- 12. Thay đổi kích thước và định kích thước cửa sổ bật lên GWT khi cửa sổ trình duyệt đổi kích thước
- 13. Cửa sổ kích hoạt thay đổi kích thước cửa sổ bật lửa jQuery UI
- 14. Cho phép thay đổi kích thước cửa sổ pyGame
- 15. trình duyệt chéo thay đổi kích thước cửa sổ trình duyệt trong JavaScript
- 16. Bắt kích thước tiêu đề khác nhau bằng cách thay đổi kích thước cửa sổ
- 17. Đóng cửa sổ chia nhỏ trong Vim mà không thay đổi kích thước cửa sổ khác
- 18. Java setResizable (false) thay đổi kích thước cửa sổ (swing)
- 19. Thay đổi kích thước cửa sổ thành kích thước đã đặt trong Linux
- 20. Thanh cuộn WPF cho cửa sổ có thể thay đổi kích thước
- 21. Emacs thay đổi kích thước cửa sổ theo chiều dọc bằng chuột
- 22. 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.
- 23. Thay đổi kích thước cửa sổ WPF, nhưng duy trì tỷ lệ?
- 24. Sử dụng ViewBox để thay đổi kích thước svg tùy thuộc vào kích thước cửa sổ
- 25. Chỉnh sửa kích thước tự động của Gridpanel khi thay đổi kích thước cửa sổ
- 26. Thay đổi kích thước một phần tử kích hoạt sự kiện thay đổi kích thước của cửa sổ
- 27. Kích thước văn bản thay đổi theo lập trình đang ngăn sự kiện thay đổi
- 28. Thay đổi kích thước biểu đồ Kendo trong khi Thu nhỏ cửa sổ trình duyệt?
- 29. Tự động định lại kích thước cửa sổ trong Xaml
- 30. Cách đổi kích thước cửa sổ trong python opencv2
Nghe có vẻ lạ một chút. Các cửa sổ nên tôn trọng cài đặt của bạn cho chiều rộng và chiều cao. Bạn có thể đăng một ví dụ minmal? – Jens
Có thể bạn đã đặt 'Window.SizeToContent' thành một cái gì đó khác với' Manual' không? Nếu vậy, 'Width' và/hoặc' Height' sẽ được tách riêng khỏi 'ActualWidth' và' AcutalHeight'. – dlf