代码之家  ›  专栏  ›  技术社区  ›  Bman

具有旋转变换中断布局的图像上的上下文菜单

  •  0
  • Bman  · 技术社区  · 10 年前

    我想将上下文菜单附加到旋转的图像(例如90度)。 它可以工作,但当上下文菜单出现时,图像会向右移动。有时它几乎完全脱离屏幕,有时则不然,这取决于它的原始位置。 问题是:

    enter image description here

    这是没有上下文菜单时的外观:

    enter image description here

    图像当然是缩放的。 以下是生成此代码的相关代码:

    Canvas _can = new Canvas();
    _can.Width = 480;
    _can.Height = 260;
    Image _resImg = new Image();
    BitmapImage bimp = new BitmapImage();
    properOrient = 1;
    bimp = GetImageFromIsolatedStorage("new" + step.ToString() + ".jpg");
    _resImg.Source = bimp;
    _resImg.Height = 260;
    _resImg.Width = 260;
    _resImg.Stretch = Stretch.UniformToFill;
    RotateTransform _rT = new RotateTransform();
    _rT.Angle = 0;
    if (properOrient == 6)
       _rT.Angle = 90;
    if (properOrient == 3)
       _rT.Angle = 180;
    _rT.CenterX = 130;
    _rT.CenterY = 130;
    _resImg.RenderTransform = _rT;
    _resImg.Margin = new Thickness(0, 0, 0, 0);
    ContextMenu _cms = new ContextMenu();
    MenuItem _mitm = new MenuItem() {
       Header = AppResources.ResourceManager.GetString("ApplicationBarDelete", AppResources.Culture),
       Tag = "delete"
    };
    _cms.Items.Add(_mitm);
    ContextMenuService.SetContextMenu(_resImg, _cms);
    _can.Children.Add(_resImg);
    

    知道这是什么原因吗? 如果旋转角度设置为0,则问题仍会发生。 如果未应用rotateTransform,则一切正常工作。 该设备是HTC 8s,尽可能更新。

    1 回复  |  直到 10 年前
        1
  •  2
  •   Bman    10 年前

    问题是上下文菜单的“缩小”功能。 它似乎只是简单地删除了应用于基本上任何元素的一些转换。除了在XAML或代码中使用IsZoomEnabled=false禁用缩放之外,我没有找到任何其他解决方法。

    我希望它能帮助其他人!