【发布时间】:2012-04-04 01:15:20
【问题描述】:
我在 UserControl 中有一个 DataGrid,并且我在 DataGrid 中添加了一个 ContextMenu。
XAML 如下:
<sdk:DataGrid ItemsSource="{Binding Path=GridSource}">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Binding="{Binding Path=Name, Mode=OneWay}" Header="Name"/>
<sdk:DataGridTextColumn Binding="{Binding Path=Number, Mode=OneWay}" Header="Number"/>
</sdk:DataGrid.Columns>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu Opened="ContextMenu_Opened">
<toolkit:MenuItem IsEnabled="False">
<toolkit:MenuItem.Icon>
<Image x:Name="menuIcon"/>
</toolkit:MenuItem.Icon>
</toolkit:MenuItem>
<toolkit:Separator />
<toolkit:MenuItem Header="View Agent Route" Click="AgentRoute_Click"/>
<toolkit:MenuItem Header="Live Track" Click="LiveTrack_Click"/>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</sdk:DataGrid>
如果我使用 XAML 设置 menuIcon Image 的来源
<Image x:Name="menuIcon" Source="../../Assets/Images/user_green.png"/>
然后图标渲染得很好,但如果我尝试在 ContextMenu_Opened 事件处理程序中使用:
private void ContextMenu_Opened(object sender, RoutedEventArgs e)
{
menuIcon.Source = new BitmapImage(new Uri("../../Assets/Images/user_green.png", UriKind.Relative));
}
什么都没有显示,我没有收到错误或任何它没有显示的内容。我已经使用相同的方法在我的应用程序的其他地方设置了 ImageSource(使用相同的实际 *.png 文件),有什么想法吗?
这是因为它是 ContextMenu 吗?在网格上?我不知道发生了什么。
【问题讨论】:
标签: silverlight image silverlight-4.0 contextmenu