[英]User Control in XAML only shows name
經過一段時間的嘗試,我設法在XAML中使用用戶控件,並設法使它“運行”(請閱讀“無錯誤構建”)。 但是,當我運行它時,我所看到的(而不是2個測試標簽)是類的名稱。
這是我的代碼: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>
用戶控件背后的代碼:
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();
}
}
}
主窗口:
<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>
主窗口背后的代碼:
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();
}
}
}
順便說一句,“ Config”不是實際項目中使用的名稱空間,因為有前綴,所以它不是指C#Config名稱空間。 我刪除了前綴以“隱藏”源項目。
您也可能會注意到,MainWindow和usercontrol在不同的項目中,但是它會按需選擇它。 當我在用戶控件中寫入錯誤時,主窗口在導入用戶控件的行上給出了錯誤。 全名和名稱空間也顯示在主窗口中。 因此他們確實彼此了解。 但是我似乎無法顯示其中的實際控件。
用戶控制
<UserControl x:Class="WpfApplication1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup- compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="TEST" VerticalAlignment="Center" Foreground="Black" HorizontalAlignment="Center" Grid.Column="0"></TextBlock>
<TextBlock Text="TEST" VerticalAlignment="Center" Foreground="Black" HorizontalAlignment="Center" Grid.Column="1" ></TextBlock>
</Grid>
</UserControl>
主窗口:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<Grid>
<controls:UserControl1 Width="200" Height="200"></controls:UserControl1>
</Grid>
</Window>
與Usercontrol在不同的項目中。
首先創建wpf用戶控件庫項目,並在其中添加usercontrol。 與上面相同的代碼。
然后將項目引用添加到主項目中。
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:WpfControlLibrary1="clr-namespace:WpfControlLibrary1;assembly=WpfControlLibrary1" x:Class="WpfApplication1.MainWindow"
Title="MainWindow" Height="350" Width="525">
<Grid>
<WpfControlLibrary1:UserControl1 HorizontalAlignment="Left" Margin="154,81,0,0" VerticalAlignment="Top" Height="120" Width="172"/>
</Grid>
</Window>
您的UserControl派生不正確。
public partial class UCTest : UserControl
{
public UCTest()
{
InitializeComponent();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.