gpt4 book ai didi

C# WPF 在运行时向主窗口添加控件

转载 作者:可可西里 更新时间:2023-11-01 08:21:03 28 4
gpt4 key购买 nike

我的目标是在应用程序运行时附加一个新的图像控件。

img = new System.Windows.Controls.Image();
img.Margin = new Thickness(200, 10, 0, 0);
img.Width = 32;
img.Height = 32;
img.Source = etc;

我试过了

this.AddChild(img);// says must be a single element
this.AddLogicalChild(img);// does nothing
this.AddVisualChild(img);// does nothing

用表单添加元素从未如此困难。我怎样才能简单地将这个新元素附加到主窗口(而不是另一个控件)以便它显示出来。

解决了,我将网格命名为 main,从那里我能够访问 children 属性和 add 函数

main.children.add(img);

<Window x:Class="Crysis_Menu.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded" AllowsTransparency="False" Background="White" Foreground="{x:Null}" WindowStyle="SingleBorderWindow">
<Grid Name="main">
<Button Content="Run" Height="23" HorizontalAlignment="Left" Margin="12,12,0,0" Name="btnRun" VerticalAlignment="Top" Width="151" Click="btnRun_Click" />
<TextBox Height="259" HorizontalAlignment="Left" Margin="12,40,0,0" Name="tbStatus" VerticalAlignment="Top" Width="151" />
</Grid>
</Window>

最佳答案

window下应该只有一个根元素。使用 this.AddChilda 添加图像将图像添加为窗口的子项,但您可能定义了其他一些子项(例如网格)。给这个 child (示例中的网格)命名,然后在后面的代码中将图像添加到网格

示例:

<Window>
<Grid x:Name="RootGrid">

</Grid>
</Window>

然后在后面的代码中使用

RootGrid.Children.Add(img);

关于C# WPF 在运行时向主窗口添加控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7773795/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com