我为Windows通用平台(Win 10 UWP)创建了一个类库。
该库中包含一些UserControls。
当我从该库中将dll添加到Win 10 UWP应用程序并使用UserControls时,它给出了XamlParseException,如我在发布的另一个问题中所述
但是,当我引用整个项目时,也没有例外,我可以使用UserControl。据说发生这种情况是因为有些xbf文件在我仅引用dll文件时没有添加到Win 10应用程序项目中。
在某个项目中,我需要将xbf文件手动添加到Win 10应用程序项目中,我不能引用整个项目,只能引用dll并添加所需的文件。
我尝试在Visual Studio项目中创建一个文件夹并添加xbf文件,还尝试创建具有不同名称的文件夹,然后通过Windows资源管理器将xbf文件复制到“ bin”目录中。但是没有成功。
因此,如何手动将xbf文件添加到Windows 10 UWP项目?
更新1:-XAML和代码供参考
public sealed partial class CustomPopupControl : UserControl { internal CustomPopupControl() { this.InitializeComponent(); //-------CRASHES HERE------- } internal CustomPopupControl() : base() { Debug.WriteLine("CustomPopupControl"); // //do some stuff // // } private void OnPopupLoaded(object sender, RoutedEventArgs e) { this.Popup_Container.HorizontalOffset = (Window.Current.Bounds.Width - Grid_Child.ActualWidth) / 2; this.Popup_Container.VerticalOffset = (Window.Current.Bounds.Height - Grid_Child.ActualHeight) / 2; } internal void OpenPopup() { Debug.WriteLine("OpenPopup"); Popup_Container.IsOpen = true; var currentFrame = Window.Current.Content as Frame; var currentPage = currentFrame.Content as Page; currentPage.IsHitTestVisible = false; Debug.WriteLine("OpenPopup Done"); } private void OnLayoutUpdated(object sender, object e) { if (Grid_Child.ActualWidth == 0 && Grid_Child.ActualHeight == 0) { return; } double ActualHorizontalOffset = Popup_Container.HorizontalOffset; double ActualVerticalOffset = Popup_Container.VerticalOffset; double NewHorizontalOffset = (Window.Current.Bounds.Width - Grid_Child.ActualWidth) / 2; double NewVerticalOffset = (Window.Current.Bounds.Height - Grid_Child.ActualHeight) / 2; if (ActualHorizontalOffset != NewHorizontalOffset || ActualVerticalOffset != NewVerticalOffset) { Popup_Container.HorizontalOffset = NewHorizontalOffset; Popup_Container.VerticalOffset = NewVerticalOffset; } } }
XAML:-
我直接在另一个应用中使用该控件,因为-
CustomPopupControl myctrl = new CustomPopupControl(); myctrl.OpenPopup();
Franklin Che.. 5
除了Thomas的答案外,您还需要在项目的“属性”页面下的“ 生成 ”配置中选中“ 生成库布局 ”选项。
我们需要参考的文件:
ClassLibrary1(类库名称)文件夹
ClassLibrary1.xr.xml
CustomPopupControl.xaml
ClassLibrary1.dll
ClassLibrary1.pri- >包资源索引文件
将这些文件复制到任何地方,UWP项目仅需要在Visual Studio中添加对ClassLibrary1.dll文件的引用,所有这些文件都会自动添加。
当我尝试在“ InitializeComponent()”方法上使用UserControl时,它只会引发xaml解析异常
添加引用时,可能缺少.pri文件。
除了Thomas的答案外,您还需要在项目的“属性”页面下的“ 生成 ”配置中选中“ 生成库布局 ”选项。
我们需要参考的文件:
ClassLibrary1(类库名称)文件夹
ClassLibrary1.xr.xml
CustomPopupControl.xaml
ClassLibrary1.dll
ClassLibrary1.pri- >包资源索引文件
将这些文件复制到任何地方,UWP项目仅需要在Visual Studio中添加对ClassLibrary1.dll文件的引用,所有这些文件都会自动添加。
当我尝试在“ InitializeComponent()”方法上使用UserControl时,它只会引发xaml解析异常
添加引用时,可能缺少.pri文件。