-1

我创建了一个带有 TextBlock 的 UserControl,问题是我无法从使用此 UserControl 的 MainPage 更改此 UserControl 的文本。

请帮助我是 Metro 风格应用程序的新手,基本上是 Windows 手机开发人员。检查下面的用户控件的来源。

<UserControl
x:Class="Version1forMainMenu.MyUserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Version1forMainMenu"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400" x:Name="MyUserControl1">

<Grid x:Name="grid_amorti"  PointerEntered="gride_quickestimate_PointerEntered" PointerExited="gride_quickestimate_PointerExited" PointerPressed="gride_quickestimate_PointerPressed" PointerReleased="gride_quickestimate_PointerReleased" Tapped="gride_quickestimate_Tapped">
    <Grid.Background>
        <ImageBrush ImageSource="Image/inside_menu_normal.png"/>            
    </Grid.Background>


    <TextBlock Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="3"  x:Name="edit"   Text="" FontSize="30" FontWeight="Bold" VerticalAlignment="Center" FontFamily="Global User Interface" Margin="10,112,29,111" ></TextBlock>
    <Image Grid.Row="1" x:Name="img" Grid.Column="5" Source="Image/small_arrow.png"  />


</Grid>

我无法从使用此 UserControl 的页面访问名为“edit”的文本块。

4

3 回答 3

0

看起来你缺少你Grid.ColumnDefinition的 s 和Grid.RowDefinitions

<Grid x:Name="grid_amorti" ...>  
    <Grid.Background>
         <ImageBrush ImageSource="Image/inside_menu_normal.png"/>            
    </Grid.Background>
    <Grid.ColumnDefintion>

    </Grid.ColumnDefinition>
    <Grid.RowDefiniton>

    </Grid.RowDefinition>
</Grid>

所以你实际上放错了它们......

于 2013-04-23T12:44:21.900 回答
0

这很正常,TextBlock 是 UserControl 内部的私有字段。您需要重新公开您希望能够修改的属性,例如使用此技术:http ://www.geekchamp.com/tips/how-to-expose-properties-of-a-user-control-在 Windows 电话

于 2013-04-23T12:44:34.387 回答
0

这是完全正常的,因为您在用户控件中的控件不可公开访问。您应该在用户控件中定义一个公共属性以使这些控件可用...

于 2013-04-23T12:43:07.880 回答