首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制按钮并将其添加到WPF/C#中的dockpanel中

复制按钮并将其添加到WPF/C#中的dockpanel中
EN

Stack Overflow用户
提问于 2011-11-29 02:13:04
回答 3查看 1.1K关注 0票数 0

我正在尝试动态地将按钮添加到我的DockPanel中。我需要创建相同的按钮,它存在于我的停靠面板中。

代码语言:javascript
复制
<Button Name="ImageMoreButton"
             DockPanel.Dock="Right"
             Command="{Binding LaunchLookup}" 
             Style="{StaticResource ButtonStyle}"
             Margin="2,0,2,0"
             Padding="3"
             Visibility="{Binding Definition.IsLookupImageButton, Converter={StaticResource boolToVisibilityConverter}}"
             IsEnabled="{Binding Locked, Converter={StaticResource invertedBooleanConverter}}">
             <Image Name="button_image" Source="search_button_rest.png"/>
</Button>

这是我的C#代码。

代码语言:javascript
复制
d.Name = VariableArg.Name + index;
d.Margin = VariableArg.Margin;

item.Command = ImageMoreButton.Command;
item.Style = ImageMoreButton.Style;
item.Name = ImageMoreButton.Name + index;
item.Visibility = ImageMoreButton.Visibility;
item.Padding = ImageMoreButton.Padding;
item.Margin = ImageMoreButton.Margin;
item.IsEnabled = ImageMoreButton.IsEnabled;
item.Height = ImageMoreButton.ActualHeight;
item.Width = ImageMoreButton.ActualWidth;
DockPanel.SetDock(item, Dock.Right);

如果这是正确的方法,请告诉我。

EN

Stack Overflow用户

发布于 2011-11-29 02:28:40

如果你经常使用这段代码,我建议你在Button类上定义一个扩展方法。如下所示:

代码语言:javascript
复制
  public static class ButtonExtension
    {
        public static Button Clone(this Button myButton, int index)
        {
            var newButton = new Button
                                {
                                    Command = myButton.Command,
                                    Style = myButton.Style,
                                    Name = myButton.Name + index,
                                    Visibility = myButton.Visibility,
                                    Padding = myButton.Padding,
                                    Margin = myButton.Margin,
                                    IsEnabled = myButton.IsEnabled,
                                    Height = myButton.ActualHeight,
                                    Width = myButton.ActualWidth
                                };
              return newButton;
        }
    }

您可以稍后使用它,如下所示:

代码语言:javascript
复制
  var newButton = ImageMoreButton.Clone(index);
  DockPanel.SetDock(newButton, Dock.Right);
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8300318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档