2011-08-13 90 views
0

我有一個使用Expression Blend創建的表單。之前當我在Visual Studio中創建一個時,我可以使用Controls.Add()添加自定義控件。一個例子如下。如何在Expression Blend中添加自定義控件?

Using SriClocks; 
//////////////////////Blah blah 
public Form1() 
{ 
    InitializeComponent(); 
    SriClocks.DigitalClockCtrl clk = new DigitalClockCtrl(); 
    clk.Size = new Size(500, 150); 
    clk.Show(); 
    this.Controls.Add(clk); 
    clk.SetDigitalColor = DigitalColor.GreenColor; 
} 

當我使用expression blend創建表單時,我無法使用上述方法向表單添加控件。通過

 this.Controls.Add(**)
有人可以讓我知道如何實現這個任務! 非常感謝。

回答

1

您的第一個代碼示例看起來像一個Windows.Forms應用程序,但Expression Blend創建了WPF應用程序。因此沒有this.Controls -Enumeration。你應該控制添加到(你使用的任何其他容器或)Grid,像

Class1.xaml

<Window x:Class="Class1" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="About" Height="300" Width="350" ResizeMode="NoResize"> 
    <Grid x:Name="grid" /> 
</Window> 

Class1.xaml.cs

... 
public Class1() 
{ 
    InitializeComponent(); 
    SriClocks.DigitalClockCtrl clk = new DigitalClockCtrl { Size = new Size(500,150) }; 
    this.grid.Children.Add(clk); 
} 
... 
+0

非常感謝你的建議。我認爲這是解決問題的正確方法。當我按照你提到的方式嘗試時,編譯器給出了一個錯誤,說*** in,this.grid.Children.Add(***)應該是一個UIElement!那麼,我怎樣才能讓時鐘成爲UIElement? – silverfall

+0

@silverfall - 如果您無法訪問時鐘代碼,則需要WindowsFormsHost:http://msdn.microsoft.com/en-us/library/ms742875.aspx。如果這解決了你的問題,請接受我的回答:) – Matten