2014-02-22 62 views
2

大家好。我用一些(WPF)表單創建了一個應用程序。我在一個表單上有一個按鈕。我希望在運行時將此按鈕複製到另一個表單上,而無需再次創建它。運行時複製控制按鈕

例如:我有「X」上的形式1.按鈕在運行時,我上形式創建該按鈕的上形式2的副本與所有相同的屬性值作爲原始按鈕1.

按鈕:

<Button Content="Open Window" Click="ButtonClicked" Height="25" 
HorizontalAlignment="Left" Margin="379,264,0,0" Name="button1" 
VerticalAlignment="Top" Width="100" /> 

任何機會,我可以避免必須重現此代碼?

+1

所以首先告訴我們你真的在用什麼,wpf或winforms – Max

+1

我在我的應用程序中使用WPF – MARK

+0

我刪除了Winforms,因爲那時沒有使用。 – Max

回答

1

你可以定義你自己的按鈕樣式在App.xaml

<Application x:Class="WpfButton.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
     <Style x:Key="myBtnStyle" TargetType="Button" > 
      <Setter Property="Content" Value="Open Window" /> 
      <Setter Property="Height" Value="25" /> 
      <Setter Property="Width" Value="100" /> 
      <Setter Property="HorizontalAlignment" Value="Left" /> 
      <Setter Property="Margin" Value="379,264,0,0" /> 
      <Setter Property="VerticalAlignment" Value="Top" /> 
      <EventSetter Event="Click" Handler="myBtn_Click" /> 
     </Style> 
    </Application.Resources> 
</Application> 

後面的代碼:

public partial class App : Application 
{ 
    public void myBtn_Click(object sender, EventArgs e) 
    { 
     Button btn = sender as Button; 
     // ... 
    } 
} 

而當你想創建較早的風格分配到該按鈕,你應該使用StaticResource和你的風格的名字:

<Button Style="{StaticResource myBtnStyle}" /> 
+0

感謝您的幫助 – MARK

0

如果你想cre吃了一個確切的克隆,那麼你將需要序列化組件並將ExpressionConverter注入到序列化過程中。這將創建一個'深'克隆。請參閱here