如何在Silverlight中创建自定义控件?
我使用Expression Blend创建了一个自定义控件:如何在Silverlight中创建自定义控件?,silverlight,xaml,custom-controls,Silverlight,Xaml,Custom Controls,我使用Expression Blend创建了一个自定义控件: <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="MyProject.EditableField"
d:DesignWidth="286" d:DesignHeight="20">
<Grid x:Name="LayoutRoot">
<TextBlock HorizontalAlignment="Left" Width="95" Text="Label:" TextWrapping="Wrap" x:Name="Label" FontSize="12"/>
<TextBox Margin="99,0,0,0" x:Name="Value" Text="Value" TextWrapping="Wrap"/>
</Grid>
</UserControl>
它包含一个TextBlock标签和一个TextBox值。我想用它们自己的标签和值将其中的多个添加到我的XAML中,可能如下所示:
<MyProject:EditableField Margin="30,180,0,0" Height="20" HorizontalAlignment="Left" VerticalAlignment="Top" Width="286" x:Name="FaxNumber">
<Label>
<Text>Fax number:</Text>
</Label>
<Value>
<Contents>
111-222-333
</Contents>
</Value>
</MyProject:EditableField>
传真号码:
111-222-333
当我说也许,这显然是行不通的。添加它们的正确语法是什么?最简单的方法是向代码中添加两个新属性,例如LabelText和ContentText。将这些连接起来,分别设置和获取TextBlock控件和TextBox控件的文本属性 然后你会使用:
<MyProject:EditableField LabelText="Fax number:" ContentText="111-222-333" ...
代码隐藏中的:
public string LabelText
{
get { return Label.Text; }
set { Label.Text = value; }
}
public string ContentText
{
get { return Value.Text; }
set { Value.Text = value; }
}