Tôi muốn đạt được hiệu ứng tương tự như Windows Media Player hoặc Trình duyệt Flash dựa trên đó chiếm TOÀN BỘ (thậm chí không có thanh tác vụ có thể nhìn thấy) bất động sản khi tối đa.WPF Window with Style = Không bao gồm thanh tác vụ khi tối đa hóa sau khi khởi tạo ứng dụng
Tính năng này hoạt động tốt nếu WindowState
được đặt thành Maximized
và WindowStyle
được đặt thành None
trong XAML để ứng dụng được bắt đầu ở trạng thái đó. Vấn đề là tôi muốn khởi động ứng dụng trong một cửa sổ có viền và khi người dùng chọn, tối đa hóa như được chỉ định ở trên. Trong trình xử lý StateChanged
tôi kiểm tra trạng thái Maximized
và nếu đây là trường hợp tôi đặt WindowStyle
thành None
. Điều này có tác dụng tối đa hóa cửa sổ nhưng KHÔNG bao gồm thanh tác vụ. Các mã sau đây sẽ làm cho công việc này như tôi muốn nhưng một hack của nó và tôi muốn để làm sạch nó lên:
if (WindowState == WindowState.Maximized)
{
m_videoWindow.Maximize();
WindowStyle = WindowStyle.None;
//the following makes this work but I would like to clean it up
Hide();
Show();
}
EDITThis (từ năm 2006 khi vẫn còn trong CTP) đề cập đến vấn đề này và một người nào đó từ MS nói rằng họ hy vọng sẽ cải thiện hỗ trợ toàn màn hình trong phiên bản tiếp theo, có những cải tiến này được thực hiện?
Vấn đề này vẫn còn sống và tốt với tất cả các phiên bản mới nhất của WPF/.NET 4.0 ... - Tôi đoán Microsoft muốn lỗi này tương thích ngược ... ẩn/hiển thị sửa lỗi của bạn hoạt động tốt mặc dù ... Tôi đang làm một chút khác biệt, gọi Hide, thiết lập các thuộc tính, sau đó gọi Show. – BrainSlugs83
Thật đáng tiếc. Tôi nhận thấy một số điều khiển của tôi không được thay đổi kích cỡ đúng cách, không có ý tưởng tại sao (hoặc với đơn đặt hàng của tôi, hoặc với đơn đặt hàng của bạn ...); Giải pháp nhanh là Maximize, gọi DoEvents(), đặt WindowStyle thành None, sau đó gọi Hide & Show. - DoEvents là tất nhiên System.Windows.Forms.Application.DoEvents() (Vâng, tôi biết đó là điên rồ, và có lẽ là thực hành tồi tệ nhất, nhưng nó hoạt động ...) – BrainSlugs83