gpt4 book ai didi

c# - 以编程方式向 UWP 应用添加按钮

转载 作者:可可西里 更新时间:2023-11-01 11:24:41 25 4
gpt4 key购买 nike

假设我的应用有一个按钮可以添加另一个按钮。如果我按下它,另一个按钮应该出现在第一个按钮的旁边。此外,新按钮应成为“添加新按钮”按钮。

我该怎么做?

我的方法是创建一个 RelativePanel,因为在编辑器中,您可以说“将这个放在那个的左边”。但是,它找不到在 C# 代码中执行此操作的方法。

最佳答案

可以关注ctron's comment并通过在代码中设置附加属性值来实现。该示例可能如下所示 - XAML:

<RelativePanel x:Name="myPanel" Margin="100">
<Button Content="StartBtn" Click="Button_Click"/>
</RelativePanel>

在后面的代码中:

private void Button_Click(object sender, RoutedEventArgs e)
{
Button newButton = new Button { Content = "CreatedBtn" };
newButton.Click += Button_Click;
RelativePanel.SetLeftOf(newButton,sender);
myPanel.Children.Add(newButton);
}

这会很好地工作,但是如果您双击一个按钮,第二个新创建的按钮将与第一次单击创建的按钮重叠。如果这不是所需的行为,您将不得不以其他方式进行,在这种情况下,您需要一个按钮列表。为此,我使用了水平 ListView:

<ListView x:Name="myList">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel Orientation="Horizontal" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.VerticalScrollMode="Disabled"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Button Content="{Binding}" Click="ListButton_Click"/>
</DataTemplate>
</ListView.ItemTemplate>
<x:String>StartBtn</x:String>
</ListView>
private void ListButton_Click(object sender, RoutedEventArgs e)
{
int index = myList.Items.IndexOf((e.OriginalSource as FrameworkElement).DataContext);
myList.Items.Insert(index, $"Btn {myList.Items.Count}");
}

这需要更多样式,但应该展示基本思想。

关于c# - 以编程方式向 UWP 应用添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42306705/

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