Windows 10通用应用程序UserControl在stackpanel

本文关键字:stackpanel UserControl 应用程序 10通 Windows | 更新日期: 2023-09-27 17:49:26

我需要放置一个自定义UserControl到一个Stackpannel。我有这个UserControl:

<UserControl
    x:Class="ScannerApp.Custom_Controls.LocationAndQuantity"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ScannerApp.Custom_Controls"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="20"
    d:DesignWidth="400">
    <Grid Background="White">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100*"/>
            <ColumnDefinition Width="80*"/>
            <ColumnDefinition Width="100*"/>
        </Grid.ColumnDefinitions>
        <Border x:Name="border" Background="Red" BorderThickness="1" HorizontalAlignment="Left" Height="20" VerticalAlignment="Top" Width="143">
            <TextBlock x:Name="locationTxt" Text="location" HorizontalAlignment="Center"></TextBlock>
        </Border>
        <TextBlock x:Name="quantityTxt" Text="quantity" Grid.Column="2" HorizontalAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Top"/>
    </Grid>
</UserControl>

和一个带有stackpanel

的页面
<Page
    x:Class="ScannerApp.FindPN___STEP2"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ScannerApp"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        ...
        <StackPanel>
            <!--here I want to place the userControls-->
        </StackPanel>
    </Grid>
</Page>

我尝试了一些解决方案,如<controls: ...> //this could not be found by intellisense even

<my:UserControlName Grid.Column="2" Grid.Row="2" ... />
<Window ... 
    xmlns:my="clr-namespace:AssemblyName"
    ...
/>

但是我这里没有窗口…我试着把类似的东西放入页面,但我真的不知道该在那里输入什么。

Windows 10通用应用程序UserControl在stackpanel

正如在注释中所说,您必须修复您的XAML。如果你想使用自定义控件,你必须告诉编译器控件来自哪里。

如果Controls命名空间是

ScannerApp。Custom_Controls

你必须把页面的XAML写成

<Page
    x:Class="ScannerApp.FindPN___STEP2"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:ScannerApp.Custom_Controls" <!--FIXED HERE-->
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
  <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    ...
    <StackPanel>
      <local:NameOfYourControl x:Name="MyNewControl" /> <!--Properties can be added-->
    </StackPanel>
  </Grid>
</Page>