2016-06-24 2 views
2

Мне нужно поместить пользовательский UserControl в Stackpannel. У меня есть этот UserControl:Windows 10 универсальное приложение UserControl в stackpanel

<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> 

я попробовал некоторые sollutions как <controls: ...> //this could not be found by intellisense even или

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

но у меня нет окна здесь .. Я попытался поместить что-то похожее в страницу, но я действительно не знаю, что набрать там.

+0

вам нужно добавить пространство имен для вашего UserControl так добавьте новое пространство имен под 'xmlns: mc =" http [...] 'like' xmlns: myControls = "clr-namespace: MyAppNamespace;", после чего вы можете использовать свой элемент управления, например '' –

ответ

1

Как сказано в комментариях, вы должны исправить свой XAML. Если вы хотите использовать настраиваемые элементы управления, вы должны сообщить компилятору, откуда берутся элементы управления.

В случае, если вы Контролирует пространство имен

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>