繁体   English   中英

从XAML的上下文菜单修改图像高度

[英]Modifying image height from context menu in XAML

在我的XAML页面中,我定义了带有上下文菜单的图像:

<Image Height="{Binding Image.Height, Mode=TwoWay}" MaxHeight="2000" HorizontalAlignment="Left" StretchDirection="Both" Stretch="Uniform"
Source="{Binding Image.ImageData, Converter={StaticResource ImageByteConverter}}"
x:Name="Image1">

<Image.ContextMenu>
<ContextMenu>
    <MenuItem Header="200" Click="ImageHeight200_Click" />
    <MenuItem Header="400" Click="ImageHeight400_Click" />
    <MenuItem Header="600" Click="ImageHeight600_Click" />
    <MenuItem Header="800" Click="ImageHeight800_Click" />
    <MenuItem Header="1000" Click="ImageHeight1000_Click" />
</ContextMenu>
</Image.ContextMenu>
</Image>

现在,我想添加代码以调整图像大小。

当我写这样的东西

private void ImageHeight200_Click(object sender, RoutedEventArgs e)
{
    var img = (Image)e.Source;
    img.Height = 200;
}

它访问MenuItem但不访问图像,并且出现错误消息:

类型“ System.Windows.Controls.MenuItem”的对象不能转换为类型“ System.Windows.Controls.Image”。

我的问题是:

如何访问图像对象?

您可以按名称引用图片

private void ImageHeight200_Click(object sender, RoutedEventArgs e)
{
    Image1.Height = 200;
}

您可以使用ContextMenu的PlacementTarget属性

private void ImageHeight200_Click(object sender, System.Windows.RoutedEventArgs e){
MenuItem mnu = sender as MenuItem;
Image sp = null;
if(mnu!=null)
{
    sp = ((ContextMenu)mnu.Parent).PlacementTarget as Image;
}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM