C#: 水平翻转图像

8

我想做的是,在单选按钮点击时将图像水平翻转。

private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
    arrow.Image.RotateFlip(RotateFlipType.RotateNoneFlipX);
}

private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
    arrow.Image.RotateFlip(RotateFlipType.RotateNoneFlipX);
}

上述代码没有翻转图像:图像保持原样。我错过了什么吗?

3
你确定这段代码已经被调用了吗? - default
WriteableBitmapExtensions有旋转/翻转方法:http://writeablebitmapex.codeplex.com/ - Chris Sinclair
箭头是一个 PictureBox 控件吗? - Hans
1
你可能需要强制刷新它,所以尝试在其后添加 arrow.Invalidate(); - Ghost
http://chat.stackoverflow.com/rooms/13387/c-flip-image-horizontally - heron
显示剩余3条评论
1个回答

9

如果你需要让它重新绘制,你可以手动强制执行以下操作:

 private void radioButton1_CheckedChanged(object sender, EventArgs e)
 {
     arrow.Image.RotateFlip(RotateFlipType.RotateNoneFlipX);
     arrow.Invalidate() ;
 }

你应该只在一个单选按钮上使用这个,而不是两个都使用,否则它们会互相抵消,所以用上面的替换你当前的内容。我已经验证过它可以在vs2005下工作,但是我手头没有vs2010。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接