首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

wpf 自定义控件的应用,该如何解决

2012-05-14 
wpf 自定义控件的应用我自定义了一个控件,然后想在Window中应用这个控件(设置属性),程序提示出错,说找不到

wpf 自定义控件的应用
我自定义了一个控件,然后想在Window中应用这个控件(设置属性),程序提示出错,说找不到属性,能帮忙看看什么原因么?
下面是我的自定义控件,包括一个checkbox,一个textblock。我希望在以后应用的时候可以设置textblock的Text属性:

C# code
<UserControl x:Class="Test02.UC"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    xmlns:local="clr-namespace:Test02"    Height="300" Width="300">    <StackPanel>        <CheckBox x:Name="Chb" Content="Chb_Content"/>        <TextBlock x:Name="Tb" Text="Tb_Content"/>    </StackPanel></UserControl>

以下在Window中应用控件:
<Window x:Class="Test02.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Height="300" Width="300"
  xmlns:local="clr-namespace:Test02">
  <Grid>
  <local:UC Background="LightBlue">
  <local:UC.Tb Text="ABC"/>
  </local:UC>
  </Grid>
</Window>
提示:Error
1The tag 'UC.Tb' does not exist in XML namespace 'clr-namespace:Test02'. Line 8 Position 14.

请问这是什么原因呢?我在UC这个自定义控件的xaml部分已经定义了Tb啊,我尝试在C#代码部分对Tb进行包装:
C# code
public TextBlock TB{    set{this.Tb = value;}    get{return this.Tb;}}

C# code
    <Grid>        <local:UC Background="LightBlue">            <local:UC.TB Text="ABC"/>        </local:UC>    </Grid>

但是提示:Error1Cannot set properties on property elements. Line 8 Position 14.

请问如果我需要在使用自定义控件的时候,设置其属性应该怎么做呢?
谢谢。

[解决办法]
<local:UC Background="LightBlue">
<local:UC.Tb Text="ABC"/>
</local:UC>
 
 看了半天,发现Tb是个string.
<local:UC Background="LightBlue" Tb="ABC"/>
 

热点排行