RenderTargetBitmap的问题

u010458056 2016-06-20 02:47:01
为什么把下面的一个click方法分成两个方法分别依次执行,能得到预期结果(panel里面添加mainCanvas的缩略图),而放在一个方法里面执行,panel里面的图是空的?这是什么问题呢
private void Btn_Click(object sender, RoutedEventArgs e)
{

_designManager.Load("Test01.xml");
_designManager.Draw(mainCanvas);
//========== 分割线 =================
string str = "test";
Button bt = new Button { Name = str };
bt.Height = 60;
_customLibPanel.Children.Add(bt);
RenderTargetBitmap bmp = new RenderTargetBitmap(Convert.ToInt32(mainCanvas.Width), Convert.ToInt32(mainCanvas.Height), 60, 90, PixelFormats.Pbgra32);
bmp.Render(mainCanvas);
Image image = new Image();
image.Source = bmp;
image.HorizontalAlignment = HorizontalAlignment.Left;
StackPanel panel = new StackPanel();
panel.Orientation = Orientation.Horizontal;
panel.Children.Add(image);
TextBlock text = new TextBlock();
text.Text = str;
text.VerticalAlignment = VerticalAlignment.Center;
panel.Children.Add(text);
bt.Content = panel;
bt.Click += new RoutedEventHandler(LibItemButton_Click);
_designManager.ClearCurrentDesign(mainCanvas);
}
...全文
1324 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_31302759 2016-08-06
  • 打赏
  • 举报
回复
你在调试的时候panel add image后有东西么
南天空 2016-06-21
  • 打赏
  • 举报
回复
我觉得可能是你click执行后清理了Canvas,_designManager.ClearCurrentDesign(mainCanvas);。所以再次执行时没有内容了
  • 打赏
  • 举报
回复
代码太少,看不出来问题。但是你可以试试逐分句放入你要的函数的方法调试,比如: _designManager.Load("Test01.xml"); _designManager.Draw(mainCanvas); //========== 分割线 ================= string str = "test"; Button bt = new Button { Name = str }; bt.Height = 60; _customLibPanel.Children.Add(bt); 方法1() //将后面的内容放入方法1 一句一句的放入方法1,看在那一句出错。那么问题就在那一句。

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧