2011-03-08 31 views
14

Theo điều này MSDN page, nếu tôi đang sử dụng Cửa sổ, tôi có thể vô hiệu hóa hộp điều khiển ở góc trên cùng bên trái bằng cách đặt thành false. Như thế này: this.ControlBox = false;Làm thế nào để loại bỏ menu hệ thống trong WPF?

Các ControlBox đã Maximize, Minimize, Khôi phục và Đóng tùy chọn
I want to disable this box in my own application

Nhưng kể từ khi tôi đang sử dụng RibbonWindow thay vì cửa sổ, làm thế nào tôi sẽ vô hiệu hóa các hộp điều khiển trong tình huống này?

This question rất liên quan, nhưng tôi muốn tắt SystemMenu mọi lúc, không chỉ để ngăn không gian Alt +. Điều này là do (tôi nghĩ) trình lắng nghe hành động cho SystemMenu ở góc trên cùng bên trái, chặn một phần tử giao diện người dùng có thể nhấp trong XAML của tôi.

Tôi nên lưu ý rằng đây không phải là vấn đề với Windows Server 2003, nhưng khi ứng dụng được mở trong Windows 7, SystemMenu/ControlBox can thiệp vào phần tử giao diện người dùng ở góc trên cùng bên trái.

Ngoài ra, tôi thấy rằng việc can thiệp vào menu hệ thống thường dẫn đến các nút ở góc trên cùng bên phải của ứng dụng bị vô hiệu hóa, nhưng tôi không muốn điều đó xảy ra.

Cảm ơn bạn đã link Eammonn. Tôi nghĩ những gì người đó đang cố gắng làm là vô hiệu hóa nút [X] ở góc trên cùng bên phải, không phải trình đơn ở góc trên cùng bên trái, nhưng tôi có thể sai. Lý do tôi không nghĩ rằng nó sẽ làm việc là họ đang sử dụng <Window x:Class= và tôi đang sử dụng <dc:RibbonWindow x:Class=. Điều này làm cho một sự khác biệt?

+1

RibbonWindow ở đâu (Tôi biết ít nhất 2 thư viện khác nhau cung cấp thư viện này, chỉ cần tự hỏi bạn đang sử dụng thư viện nào). – CodingGorilla

+0

Microsoft.Windows.Control.Ribbon.RibbonWindow –

+1

Câu trả lời của Eamonn cũng hoạt động với RibbonWindow, vì nó chỉ là phần mở rộng của Window. Office 2010 đã giới thiệu lại hộp điều khiển (với biểu tượng). Office 2007 đã ẩn nó, ủng hộ quả cầu. Điều này có ảnh hưởng đến quả cầu hoặc thanh công cụ truy cập nhanh không? – CodeNaked

Trả lời

14

Cửa sổ WPF không phải là đối tượng System.Windows.Forms, vì vậy this.ControlBox = false sẽ không hoạt động. Không có tài sản để làm điều này trong WPF nhưng xem bài viết này

http://winsharp93.wordpress.com/2009/07/21/wpf-hide-the-window-buttons-minimize-restore-and-close-and-the-icon-of-a-window/

Nó mô tả làm thế nào bạn có thể loại bỏ các phiên bản WPF của hộp điều khiển rõ ràng.

điều khiển WPF có nguồn gốc từ System.Windows.Controls và không System.Windows.Forms

+1

Cảm ơn! Bạn có biết loại cửa sổ WPF của đối tượng nào không? –

+1

Đó là Kiểm soát. –

+0

Để cụ thể, đó là một điều khiển WPF "kết thúc tốt đẹp" một cửa sổ bản địa (tức là một HWND). – CodeNaked

0

Bạn đặt

<Window ... 
    WindowStyle="ToolWindow" 
    ResizeMode="NoResize"> 

Chúc may mắn của Window của bạn.

Các vấn đề liên quan