2009-11-19 33 views

Trả lời

45

Cách dễ dàng Cách thứ nhất là không sử dụng bất động sản Biểu tượng nhưng để thay đặt biểu tượng trong Header:

<Menu> 
    <MenuItem> 
    <MenuItem.Header> 
     <StackPanel> 
     <Image Width="20" Height="20" Source="/XSoftArt.WPFengine;component/Images/export32x32xp.png" /> 
     <ContentPresenter Content="Reports" /> 
     </StackPanel> 
    </MenuItem.Header> 
    </MenuItem> 
    <MenuItem Header="Export" /> 
    <MenuItem Header="New record" /> 
</Menu> 

Đối với trường hợp này đơn giản <ContentPresenter Content="Reports" /> có thể được thay thế bằng một <TextBlock Text="Reports" /> vì đó là những gì ContentPresenter sẽ sử dụng để trình bày chuỗi. Để phức tạp hơn Header=, bạn có thể sử dụng ContentPresenter như được hiển thị.

+0

Câu trả lời rất hay, ví dụ hoạt động tốt ;-). – Vytas

+13

Câu trả lời dưới đây dễ dàng hơn và sử dụng thuộc tính Biểu tượng? –

+4

@ AlexHopeO'Connor câu trả lời dưới đây cũng sai, nếu bạn sẽ đọc câu hỏi OP hỏi trong văn bản và không tiêu đề. Bạn có thể nhận thấy rằng câu trả lời dưới đây không khác biệt với mã mà OP cung cấp. Ông rõ ràng hỏi làm thế nào để hiển thị văn bản bên dưới hình ảnh và không phải là hình ảnh bên cạnh nó, DƯỚI ĐÂY. Đó là lý do tại sao câu trả lời này đặt một stackpanel bên trong tiêu đề với Định hướng dọc của nó mặc định. –

99

Làm thế nào một cái gì đó dọc theo dòng:

<ContextMenu> 
    <MenuItem Header="Reports"> 
     <MenuItem.Icon> 
      <Image Source="/XSoftArt.WPFengine;component/Images/export32x32xp.png"/> 
     </MenuItem.Icon> 
    </MenuItem> 
</ContextMenu> 
+16

Câu trả lời này phải được chấp nhận. – Boy

+0

Đây là câu trả lời đúng, cảm ơn! Các giải pháp được cung cấp bởi Ray Burns vẽ hình ảnh ở vị trí sai. – Mar

+0

Tôi đồng ý. :) Làm tốt. –

2

Trong trường hợp của StackPanel Label sử dụng và không phải là TextBlock vì chỉ Label sẽ cho phép bạn có việc nhớ mật khẩu trên menu, như _Báo cáo.

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