簡體   English   中英

以編程方式將按鈕添加到UWP應用程序

[英]Programmatically add buttons to a UWP app

假設我的應用程序有一個按鈕,可以添加另一個按鈕。 如果我按下它,第一個按鈕旁邊會出現另一個按鈕。 此外,新按鈕應該成為“添加新按鈕”按鈕。

我該怎么做呢?

我的方法是創建一個RelativePanel,因為在編輯器中,你可以說“放置它的左邊”。 但是,它無法在C#代碼中找到一種方法。

您可以關注ctron的評論 ,並通過在代碼中設置附加屬性值來完成。 樣本看起來像這樣 - 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}");
}

這需要更多的造型,但應該顯示基本的想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM