如何在UWP类库中使用XAML静态资源和设计时间数据

时间:2017-12-01 09:56:50

标签: c# xaml uwp

我是一名具有WPF经验的程序员,我开始在UWP中编程。 几乎所有的XAML代码都与我设法克服的一些例外兼容。

起初我在一个独立的应用程序中尝试了所有内容但是现在是时候创建可重用的用户控件了,为此我创建了一个UWP类库,其中我复制了用户控件的代码我在App中编程并运行良好,但在库中似乎没有在资源字典或设计时数据扩展中创建.NET类的实例。

这个用户控件XAML代码在App中工作但在库中不起作用(它是使用" d:"的设计时间数据的版本),问题在于Canvas.Left和Canvas.Top绑定不会获得源值(图像出现在Canvas 0,0位置)。

<UserControl x:Class="NameSpace.XXXX" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:NameSpace" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="355" d:DesignWidth="430">

  <Canvas Height="355" Width="430" d:DataContext="{d:DesignInstance Type=local:LocalClass, IsDesignTimeCreatable=True}">
  <Image x:Name="TI11" Source="Assets/Images/Image11.png" Canvas.Left="{Binding T11L}" Canvas.Top="{Binding T11T}" RenderTransformOrigin="0.5,0.5" Opacity="0.65" Height="071.053" Width="064.433"/>

   ......

  </Canvas>
</UserControl>

我搜索过类似的问题,并且已经看过创建独立UWP控件库的文章,但没有找到任何对此问题的引用。

有没有人知道是否需要做任何特殊工作才能在UWP库中使用静态资源.NET类和设计时数据?

1 个答案:

答案 0 :(得分:0)

我的问题的答案是,您不必在UWP库中使用设计时数据做任何特别的事情,它应该像在应用程序中那样工作。

我认为提出问题的问题是暂时的,只影响针对Fall Creators Update的库。在他们解决问题之前,周转时间是针对创作者更新而不是Fall Creators更新

事实是,如果您使用VS 2017和我的示例代码创建一个针对Fall Creators Update的UWP库,则设计时数据绑定不起作用。

如果您使用Blend 2017打开库并尝试使用数据窗口生成设计时数据,那么Blend会通知数据窗口功能无法用于针对Fall Creators Update的项目(我附加了Blend&# 39; s消息)

enter image description here

我在https://developercommunity.visualstudio.com/content/problem/172286/design-time-data-in-uwp-library-not-working-in-vs.html

中报告了此问题