试图将对象添加到我的 canvas 但 mycanvas.children.add() 的功能不起作用,还有其他方法吗?
Trying to add the objects to my canvas but the function of mycanvas.children.add() doesnt work,any other way?
我用 rectangles
试过了,它起作用了,但我需要处理
对我的班级很重要,因为他们继承自他。我如何将对象添加到我的 canvas
如果他们不是 rectangle
?
public sealed partial class MainPage : Page
{
System.Collections.Generic.List<Piece> arr_Enemy = new System.Collections.Generic.List<Piece>();
public MainPage()
{
this.InitializeComponent();
Player _player = new Player(50,80, 50, 50, new BitmapImage(new Uri("ms-appx:///Assets/Background.jpg")));
MyCanvas.Background = new ImageBrush
{
ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Background.jpg"))
};
MyCanvas.Children.Add(_player);
for (int i = 0; i < arr_Enemy.Count; i++)
{
arr_Enemy[i] = new Piece(rnd.Next(250), rnd.Next(500), 150, 120, new BitmapImage(new Uri("ms-appx:///Assets/enemy.GIF")));
MyCanvas.ChildrenTransitions.Add(arr_Enemy[i])
}
}
}
您只能将 UIElements
添加到 Canvas
的 Children
集合中,就像您只能将 strings
添加到 List<string>
中一样。
如果你Player
是某种控件,它应该继承自UIElement
。
如果 Player
是某种模型,您可以使用带有 Canvas
面板的 ItemsControl
在您的视图中显示模型:
<ItemsControl x:Name="ic" ItemsSource="{x:Bind ListOfPlayers}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="{x:Bind local:Player}">
<TextBlock Text="I'm a player..." />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
然后您可以将玩家添加到 ListOfPlayers
源集合中。
我用 rectangles
试过了,它起作用了,但我需要处理
对我的班级很重要,因为他们继承自他。我如何将对象添加到我的 canvas
如果他们不是 rectangle
?
public sealed partial class MainPage : Page
{
System.Collections.Generic.List<Piece> arr_Enemy = new System.Collections.Generic.List<Piece>();
public MainPage()
{
this.InitializeComponent();
Player _player = new Player(50,80, 50, 50, new BitmapImage(new Uri("ms-appx:///Assets/Background.jpg")));
MyCanvas.Background = new ImageBrush
{
ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Background.jpg"))
};
MyCanvas.Children.Add(_player);
for (int i = 0; i < arr_Enemy.Count; i++)
{
arr_Enemy[i] = new Piece(rnd.Next(250), rnd.Next(500), 150, 120, new BitmapImage(new Uri("ms-appx:///Assets/enemy.GIF")));
MyCanvas.ChildrenTransitions.Add(arr_Enemy[i])
}
}
}
您只能将 UIElements
添加到 Canvas
的 Children
集合中,就像您只能将 strings
添加到 List<string>
中一样。
如果你Player
是某种控件,它应该继承自UIElement
。
如果 Player
是某种模型,您可以使用带有 Canvas
面板的 ItemsControl
在您的视图中显示模型:
<ItemsControl x:Name="ic" ItemsSource="{x:Bind ListOfPlayers}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="{x:Bind local:Player}">
<TextBlock Text="I'm a player..." />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
然后您可以将玩家添加到 ListOfPlayers
源集合中。