C# 如何在Expression Blend中添加自定义控件?
我使用C# 如何在Expression Blend中添加自定义控件?,c#,custom-controls,expression-blend,C#,Custom Controls,Expression Blend,我使用Expression Blend创建了一个表单。早些时候,当我在Visual Studio中创建一个控件时,我可以使用Controls.add()添加自定义控件。一个例子如下 Using SriClocks; //////////////////////Blah blah public Form1() { InitializeComponent(); SriClocks.DigitalClockCtrl clk = new DigitalClockCtrl(); c
Expression Blend
创建了一个表单。早些时候,当我在Visual Studio中创建一个控件时,我可以使用Controls.add()
添加自定义控件。一个例子如下
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创建表单时,我不能使用上述方法向表单添加控件。通过此.Controls.Add(**)
this.Controls.Add(**)
有人能告诉我如何完成这项任务吗!
非常感谢。您的第一个代码示例看起来像一个Windows.Forms应用程序,但Expression Blend创建了WPF应用程序。因此,不存在
此.控件
-枚举。您应该将控件添加到网格(或您使用的任何其他容器),如
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>
非常感谢你的建议。我认为这是处理这个问题的正确方法。当我按照您提到的方式尝试时,编译器给出了一个错误,指出this.grid.Children.Add(***)中的***应该是UIElement!!!那么,如何使时钟成为UIElement?@silverfall-如果您无法访问时钟代码,则需要WindowsFormsHost:。如果这解决了你的问题,请接受我的回答:)
...
public Class1()
{
InitializeComponent();
SriClocks.DigitalClockCtrl clk = new DigitalClockCtrl { Size = new Size(500,150) };
this.grid.Children.Add(clk);
}
...