level 1
dejjkk
楼主
为什么使用底下这种动态添加控件的方式来嵌入Flash会出现问题??
//创建一个边框(最外层)
Border borderBody = new Border();
borderBody.Background = Brushes.Transparent;
borderBody.BorderBrush = Brushes.White;
borderBody.BorderThickness = new Thickness(5);
//创建一个滚动条(放到最外层边框去)
ScrollViewer scroll = new ScrollViewer();
scroll.Width = 1160;
scroll.Height = 104;
scroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden;
scroll.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden;
scroll.Background = Brushes.Transparent;
borderBody.Child = scroll; //放到边框去 //创建一个StackPanel容器用来保存具体元素(放到滚动条内)
StackPanel sp = new StackPanel();
sp.Height = 104;
sp.Orientation = Orientation.Horizontal;
scroll.Content = sp; //放到滚动条去 //具体元素放到StackPanel
for (int i = 0; i < 100; i++)
{
Border border = new Border();
border.BorderBrush = Brushes.White;
border.BorderThickness = new Thickness(2);
border.Width = 100;
border.Height = 75; WindowsFormsHost formHost = new WindowsFormsHost(); AxShockwaveFlash axShockwaveFlash = new AxShockwaveFlash(); formHost.Child = axShockwaveFlash; border.Child = formHost; //出错
//引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常。
axShockwaveFlash.Movie = @"E:\game.swf"; sp.Children.Add(border);
} //最后将最外层边框添加到界面去
grid.Children.Add(borderBody); 奇怪的是为什么这样就不会出问题
StackPanel sp = new StackPanel(); Border border = new Border();
border.BorderBrush = Brushes.White;
border.BorderThickness = new Thickness(2);
border.Width = 100;
border.Height = 75; WindowsFormsHost formHost = new WindowsFormsHost(); AxShockwaveFlash axShockwaveFlash = new AxShockwaveFlash(); formHost.Child = axShockwaveFlash; border.Child = formHost; sp.Children.Add(border); grid.Children.Add(sp); axShockwaveFlash.Movie = @"E:\game.swf";
2012年02月29日 07点02分
1
//创建一个边框(最外层)
Border borderBody = new Border();
borderBody.Background = Brushes.Transparent;
borderBody.BorderBrush = Brushes.White;
borderBody.BorderThickness = new Thickness(5);
//创建一个滚动条(放到最外层边框去)
ScrollViewer scroll = new ScrollViewer();
scroll.Width = 1160;
scroll.Height = 104;
scroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden;
scroll.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden;
scroll.Background = Brushes.Transparent;
borderBody.Child = scroll; //放到边框去 //创建一个StackPanel容器用来保存具体元素(放到滚动条内)
StackPanel sp = new StackPanel();
sp.Height = 104;
sp.Orientation = Orientation.Horizontal;
scroll.Content = sp; //放到滚动条去 //具体元素放到StackPanel
for (int i = 0; i < 100; i++)
{
Border border = new Border();
border.BorderBrush = Brushes.White;
border.BorderThickness = new Thickness(2);
border.Width = 100;
border.Height = 75; WindowsFormsHost formHost = new WindowsFormsHost(); AxShockwaveFlash axShockwaveFlash = new AxShockwaveFlash(); formHost.Child = axShockwaveFlash; border.Child = formHost; //出错
//引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常。
axShockwaveFlash.Movie = @"E:\game.swf"; sp.Children.Add(border);
} //最后将最外层边框添加到界面去
grid.Children.Add(borderBody); 奇怪的是为什么这样就不会出问题
StackPanel sp = new StackPanel(); Border border = new Border();
border.BorderBrush = Brushes.White;
border.BorderThickness = new Thickness(2);
border.Width = 100;
border.Height = 75; WindowsFormsHost formHost = new WindowsFormsHost(); AxShockwaveFlash axShockwaveFlash = new AxShockwaveFlash(); formHost.Child = axShockwaveFlash; border.Child = formHost; sp.Children.Add(border); grid.Children.Add(sp); axShockwaveFlash.Movie = @"E:\game.swf";