gpt4 book ai didi

c# - 在 WPF 中动态生成一组具有不同内容的单选按钮

转载 作者:行者123 更新时间:2023-11-30 20:04:23 25 4
gpt4 key购买 nike

我是一名 C++ 开发人员,最近转向了 C#。我正在开发一个 WPF 应用程序,我需要在其中动态生成 4 个单选按钮。我尝试做很多 RnD,但看起来这种情况很少见。

XAML:

<RadioButton Content="Base 0x" Height="16" Name="radioButton1" Width="80" />

现在的场景是:我应该用不同的 Content 生成这个单选按钮 4 次,如下所示:

<RadioButton Content = Base 0x0 />
<RadioButton Content = Base 0x40 />
<RadioButton Content = Base 0x80 />
<RadioButton Content = Base 0xc0 />

我在我的 C++ 应用程序中按如下方式完成了此操作:

#define MAX_FPGA_REGISTERS 0x40;

for(i = 0; i < 4; i++)
{
m_registerBase[i] = new ToggleButton(String(T("Base 0x")) + String::toHexString(i * MAX_FPGA_REGISTERS));
addAndMakeVisible(m_registerBase[i]);
m_registerBase[i]->addButtonListener(this);
}
m_registerBase[0]->setToggleState(true);

如果您注意到上面,每次 for 循环运行时内容名称变为 Base 0x0Base 0x40base 0x80 base 0xc0 并将第一个单选按钮的切换状态设置为 true。因此,如果您注意到所有这 4 个按钮都有单按钮单击方法,并且每个按钮都将根据索引执行操作。

如何在我的 WPF 应用程序中实现这一点? :)

最佳答案

我本来打算为您编写一组代码,但意识到您的问题可能已经在这里得到解答: WPF/C# - example for programmatically create & use Radio Buttons

这可能是最简洁的方法,当然取决于您的要求。如果你想要最简单的情况,这里是:

Xaml:

<Window x:Class="WpfApplication1.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">
<Grid >
<StackPanel x:Name="MyStackPanel" />

</Grid>
</Window>

C#:

    public MainWindow()
{
InitializeComponent();

for (int i = 0; i < 4; i++)
{
RadioButton rb = new RadioButton() { Content = "Radio button " + i, IsChecked = i == 0 };
rb.Checked += (sender, args) =>
{
Console.WriteLine("Pressed " + ( sender as RadioButton ).Tag );
};
rb.Unchecked += (sender, args) => { /* Do stuff */ };
rb.Tag = i;

MyStackPanel.Children.Add( rb );
}
}

只需为内容、标签等添加您需要的任何逻辑即可。

关于c# - 在 WPF 中动态生成一组具有不同内容的单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13024441/

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