1

我正在编写一个 Windows 8 Store 应用程序,并在其中设计了自己的用户控件。

这是我的用户控件的代码(这是一个虚拟控件,但存在问题):

<UserControl
    x:Class="Windows8StoreTest.TestUserControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Windows8StoreTest"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Width="70"
    Height="40">

    <StackPanel>
        <Button Content="Hello" Foreground="Pink" BorderBrush="Pink"/>
    </StackPanel>
</UserControl>

我已将用户控件放到我的页面上并为其命名:

<Page
    x:Class="Windows8StoreTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Windows8StoreTest"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <local:TestUserControl Name="testControl"/>
    </Grid>
</Page>

但是,当我转到后面的代码时,我无法通过该名称访问控件。它似乎不存在!奇怪的是,控件在 MainPage 类的 InitializeComponent() 方法中不存在,这就是它存在的原因。

我的用户控件缺少什么?

我正在使用 Windows 8 应用商店、XAML、c#。

提前致谢

4

3 回答 3

1

尝试使用这个:

<local:TestUserControl x:Name="testControl"/>

应该管用...

于 2013-07-12T10:47:00.673 回答
0

你好,我不知道出了什么问题,但它应该可以工作。我刚刚做了一个示例。我把它放在这里希望你也这样做了。

<Page
x:Class="App12.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App12"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <local:MyUserControl1 x:Name="hellousercontrol"  />
</Grid>

在我的mainpage.cs ..我只是这样使用它..

public MainPage()
    {
        this.InitializeComponent();

        hellousercontrol.Height = 100;
}

还有一个这个..已经建立了你的解决方案?

于 2013-07-12T07:30:09.993 回答
0

我在 c++ 环境中遇到了同样的问题。我观察到,我的类中没有默认构造函数,只要添加了默认构造函数,我就可以通过 XAML 文件在我的项目中使用定义的 UserControl。但是,如果没有默认构造函数,我可以在 c++ 代码中使用它。

于 2015-11-05T07:05:44.983 回答