. MainWindow.xaml
<Window x:Class="WpfDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:y="clr-namespace:WpfDemoSpace"
Title="MainWindow" Height="350" Width="525">
<Grid>
....
<Label HorizontalAlignment="Left" Margin="308,45,0,0" VerticalAlignment="Top" Width="124" Height="41">
<y:StringProperty Content="就是这样实现的"></y:StringProperty>
</Label>
<Label HorizontalAlignment="Left" Margin="308,95,0,0" VerticalAlignment="Top" Height="40" Width="114">
<y:StringProperty>也可以这样实现:)</y:StringProperty>
</Label>
....
</Grid>
</Window>
. StringProperty.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.ComponentModel;
namespace WpfDemoSpace
{
class StringConverter : TypeConverter
{
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{
if (value is string)
{
//return value;
StringProperty local = new StringProperty();
local.Content = value.ToString();
return local;
}
return base.ConvertFrom(context, culture, value);
}
public override bool CanConvertFrom(ITypeDescriptorContext context, Type value)
{
if(value.Equals(typeof(string)))
{
return true;
}
return base.CanConvertFrom(context, value);
}
//public override bool CanConvertTo(ITypeDescriptorContext context, Type value)
//{
// return base.CanConvertTo(context, value);
//}
}
[TypeConverter(typeof(StringConverter))]
public class StringProperty
{
private string content;
public string Content
{
get
{
return this.content;
}
set
{
this.content = value;
}
}
override public string ToString()
{
return Content;
}
}
}