我的小组正在为学校开发一个地面项目,我们对这项技术都很陌生。情况是:
我们有一个带有 4 个表面按钮的页面。每当用户单击/点击其中一个表面按钮时,都会弹出一个图像。由于这个应用程序是为多用户环境而设计的,如果另一个用户点击相同的按钮,将会有另一个弹出但相同的图像。当用户看到图像时,每个弹出窗口上都有一个关闭按钮来关闭它。
每当单击按钮时,都会创建画布、网格和 ScatterViewItem,以及每个 ScatterViewItem 上的按钮。
我现在遇到的问题是每个 ScatterViewItem 上的关闭按钮都可以关闭弹出窗口。但是,它仅在只有一个弹出窗口时才有效。当有多个弹出窗口时,按钮将仅关闭最后一个弹出窗口。有人有什么建议吗?非常感谢 。提前致谢
下面是代码:
private void btn1_Click(object sender, RoutedEventArgs e)
{
Image imageControl = new Image();
Grid grid = new Grid();
// changing to popup from image control
Canvas cv1 = new Canvas();
cv1.ClipToBounds = true;
cv1.Width = 350;
cv1.Height = 350;
cv1.SetValue(Canvas.BackgroundProperty, new SolidColorBrush(Colors.Transparent));
Image imageControl1 = new Image();
var myBitmapImage1 = new BitmapImage();
myBitmapImage1.BeginInit();
myBitmapImage1.UriSource = new Uri("/Images/btn1.jpg", UriKind.Relative);
myBitmapImage1.EndInit();
imageControl1.Source = myBitmapImage1;
imageControl1.Width = 250;
imageControl1.Height = 250;
Button sb1 = new Button();
sb1.Content = "Close";
sb1.Width = 40;
sb1.Height = 40;
imageControl1.SetValue(Canvas.TopProperty, -40.0);
sb1.SetValue(Canvas.LeftProperty, 180.0);
sb1.SetValue(Canvas.TopProperty, 2.0);
sb1.Click +=new RoutedEventHandler(Close_Click);
cv1.Children.Add(imageControl1);
cv1.Children.Add(sb1);
grid.Children.Add(cv1);
App.svi = new ScatterViewItem();
App.svi.Content = grid;
sv.Items.Add(App.svi);
App. svi.Visibility = System.Windows.Visibility.Visible;
Surfaceapp1.Show();
}
public void Close_Click(object sender, RoutedEventArgs e)
{
Button srcButton = e.Source as Button;
App.svi.Visibility = System.Windows.Visibility.Collapsed;
}