Я пытаюсь использовать пользовательские элементы управления в XAML, через некоторое время и несколько учебников мне удалось заставить его «работать» (читай «он строит без ошибок»). Однако, когда я запускаю его, все, что я вижу (вместо двух тестовых меток), - это имя класса.Пользовательский контроль в XAML показывает только имя
Вот мой код: UserControl:
<Grid xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Config.UCTest">
<Label Text="TEST" VerticalOptions="Center" HorizontalOptions="Center">TEST</Label>
<Label Text="TEST" VerticalOptions="Center" HorizontalOptions="Center" Margin="150,10,10,10">TEST</Label>
</Grid>
Codebehind UserControl:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace Config
{
public partial class UCTest : Grid
{
public UCTest()
{
InitializeComponent();
}
}
}
MainWindow:
<Window x:Class="Config.WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Config.WPF"
xmlns:control="clr-namespace:Config;assembly=Config"
mc:Ignorable="d"
Title="MainWindow" SizeToContent="WidthAndHeight" Height="154" Width="363">
<control:UCTest/>
</Window>
Codebehind MainWindow:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Config;
using System.IO;
namespace Config.WPF
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
BTW, «Config» - это не пространство имен, используемое в фактическом проекте, есть префикс, поэтому он не относится к пространству имен C# Config. Я удалил префикс, чтобы «скрыть» исходный проект.
Как вы могли заметить, MainWindow и usercontrol находятся в разных проектах, но он выбирает его так, как должен. Когда я написал ошибку в пользовательском элементе управления, mainwindow дал ошибку в строке, где импортируется usercontrol. Также полное имя и пространство имен показаны в главном окне. Значит, они знают друг друга. Но я, похоже, не могу показать фактические элементы управления.
Вы пытались установить свои значения 'Высота' и' Ширина'? – Pikoh
Да, попробовал один, но получение «The BindableProperty» Height «is readonly» error – Lonefish
Поскольку я новичок во всем, что касается XAML, я следовал учебнику, в учебнике использовалась сетка. Он прекрасно компилируется. Он работает. Он просто не действует так, как это должно было ... Пробовал и другие вещи, но они даже ничего не делали. Я полностью открыт для других подходов, пока он начинает работать :) – Lonefish