Tôi cố gắng để thiết lập các biểu tượng của mục trình đơn của tôi như thế này -Không thể đặt biểu tượng cho các mục menu sử dụng ItemContainerStyle
<Grid>
<Grid.Resources>
<Image
x:Key="ReportIconImage" Height="20" Width="20"
Source="/Resource/flag.png"/>
<Image
x:Key="ReportIconImage1" Height="20" Width="20"
Source="/Resource/flag.png"/>
</Grid.Resources>
<Menu Height="22" Margin="0,9,0,0" Name="menu1" VerticalAlignment="Top">
<MenuItem Header="Menu">
<MenuItem Header="Save" ></MenuItem>
<MenuItem Header="Open"/>
<MenuItem Header="Exit"/>
<MenuItem.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter
Property="Icon"
Value="{StaticResource ReportIconImage}">
</Setter>
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
<MenuItem Header="Edit">
<MenuItem Header="Undo"/>
<MenuItem Header="Redo"/>
<Separator/>
<MenuItem Header="Cut"/>
<MenuItem Header="Copy"/>
<MenuItem Header="Paste"/>
<MenuItem.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter
Property="Icon"
Value="{StaticResource ReportIconImage1}">
</Setter>
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
</Menu>
</Grid>
nhưng biểu tượng cho chỉ cuối cùng mục menu được hiển thị và không cho hai đầu tiên.
Ứng dụng mẫu - http://weblogs.asp.net/blogs/akjoshi/Samples/WPFMenuItemBugSample.zip
bất cứ ai có thể cho biết lý do cho hành vi này và giải pháp khả thi/cách giải quyết.
Cảm ơn Kent, nhưng tiếc là cả hai giải pháp không hoạt động. Không có tác động đầu tiên và thứ hai tạo ra ngoại lệ sau đây: - Không thể thêm nội dung kiểu 'System.Windows.Controls.Image' vào đối tượng kiểu 'System.Object'. Lỗi tại đối tượng 'System.Windows.Controls.Image' trong tệp đánh dấu 'Sample; component/window1.xaml' Line 27 Position 34. – akjoshi
Trong trường hợp nó giúp, tôi đã tải lên ứng dụng mẫu sao chép vấn đề này trong câu hỏi; – akjoshi
@akjoshi: cảm ơn vì repro. Chuyển dự án của bạn sang WPF 4 cho phép đề xuất đầu tiên của tôi hoạt động, vì vậy phải có một lỗi trong 3.5. Đối với đề nghị thứ hai của tôi, điều đó sẽ không hoạt động vì WPF đang cố gắng sử dụng cùng một hình ảnh trên tất cả các MenuItems, theo cách tôi mô tả trong câu trả lời của tôi. Nếu có thuộc tính 'IconTemplate', bạn sẽ sử dụng nó. Thật không may, 'MenuItem' không đủ chi tiết để có, vì vậy tôi chỉ có thể đề nghị ghi đè' Mẫu' thay thế. Bực bội để nói rằng ít nhất. –