首页 文章

在Silverlight中的RichTextBox中为图像添加处理程序

提问于
浏览
0

在Silverlight中,我们可以使用InlineUIContainer在RichTextBox中插入图像 . 现在我正在尝试为此图像添加一些处理程序 . 这是我的代码:

InlineUIContainer contain = new InlineUIContainer();
Image image = new Image();
ImageSource img = new BitmapImage(new Uri(Source,UriKind.RelativeOrAbsolute));
image.SetValue(Image.SourceProperty, img);
image.MouseEnter +=new MouseEventHandler(image_MouseEnter);
container.Child = image;
rtb.Selection.Insert(contain);

但是,当我们移动鼠标时输入此图像,没有任何反应 . 我想要添加的是一些处理程序,如调整大小,单击和拖放 . 可能吗?我很感激任何答案 . 谢谢!

3 回答

  • 0

    另外,我昨晚想出了一个解决同样问题的新方法 . 我查看我是否在我的一个图像上单击(RTB_OnLeftMouseDown),基于循环遍历BlockControl中的所有图像并查看块控件的viewRect . 然后我在调整大小时进入ReadOnly模式,直到我再次单击图像(返回编辑模式) . 这允许我将少量调整大小的装饰器放在图像上并获得图像上的所有鼠标事件 . 这是一个非常复杂的解决方案,所以你可能想要走另一条路 .

  • 1

    RichTextBoxes的FlowDocument被禁用,因此没有处理任何事件,请参阅我的this question以获取更多信息和可能的解决方法 .

  • 0

    没有任何反应的原因是因为在富文本框上的编辑模式(IsReadOnly == false)中,没有事件在richtextbox内触发 . 你可以解决这个问题,但这很复杂 . 您将事件处理程序放在RichTexTBox上,然后在richtextbox中获取图像的可视矩形,并查看鼠标事件args指针是否在图像内 .

    编辑更好的解释为什么你不能:http://forums.silverlight.net/forums/p/224490/541921.aspx

相关问题