使用视图和数据库从Windows 8.1 / Windows Phone 8.1应用程序创建dll

薛定ding的盒子

我正在创建一个Windows Phone 8.1应用程序,该应用程序应充当其他Windows Phone 8.1应用程序的库。在我的新应用中,我可以将Library项目添加到解决方案中,因此它可以作为一种外部Library起作用,这可以完成我想做的事情。
但是,我想知道是否可以将WP Library应用程序导出到例如可以添加为对新应用程序的引用的.dll中。我还有其他方法可以做到这一点吗?

值得一提的是,我的图书馆应用程序将具有视图甚至数据库,而不仅仅是处理主应用程序中数据的方法。

Chubosaurus软件

由于它是Windows 8.1 / Windows Phone 8.1。您可以查看商店应用程序->通用应用程序->类库(适用于通用应用程序)。


在此处输入图片说明

将其编译为dll后,只需将对所述dll的引用添加到引用文件夹中即可。

要在C#中使用您的库,只需输入用于创建库的名称空间即可。

using your_namespace_from_library;

要使用视图而不使用XAML,只需在XAML文件中输入名称空间

<Page xmlns:YOUR_AWESOME_TAG="using:your_namespace_from_library">

然后,您可以通过以下方式使用库中的标签:

<YOUR_AWESOME_TAG:Your_View>

:)


要解决有效载荷问题,请检查错误消息,它应该类似于以下内容:

在此处输入图片说明

仔细看。它试图引用一个不存在的目录来获取正确的文件。解决方案(我所知道的唯一)是转到该目录并进行创建。就我而言,它是“ C:\ Users \ Duan \ Documents \ Visual Studio 2013 \ Projects \ Chubosaurus.Charts_Old2 \ Chubosaurus.Charts \ bin \ Debug \ Chubosaurus.Charts”

由于某种原因,它决定在dll编译到的Debug文件夹中创建一个额外的目录。因此,创建该文件夹即库的名称。这是您不喜欢的部分。将Debug文件夹的全部内容复制到您刚创建的目录(最重要的是Theme文件夹)中。

再次运行程序,您的问题将得到解决。但不幸的是,每次编译该dll项目时都必须执行此操作这就是为什么我说过只将库项目添加为解决方案的一部分,直到您准备将其打包到NuGet中。希望能有所帮助。


一个简单的库(教程)

假设我想制作一个可移植的库,用于绘制名为ChubCharts的图表,我创建了Project,它使用一个名为Class1.cs的默认可移植库加载了我的项目。

我要做的第一件事是删除该文件:)

然后我从添加->添加新项->模板化控件中添加模板控件

我将命名为ChubosaurusCharts,它一旦生成就应该看起来像这样。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Documents;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;

public sealed class ChubosaurusCharts : Control
{
    public ChubosaurusCharts()
    {
        this.DefaultStyleKey = typeof(ChubosaurusCharts);
    }
}

现在,我拥有最简单的控件。让我们对其应用一个ContentTemplate,这样我就可以制作一个Composite控件,这样它实际上就可以做一些事情了:)

Visual Studios在解决方案内部创建一个名为Themes的文件夹在该文件夹内是一个名为“ Generic.xaml”的文件,其中包含我们的模板。

在此处输入图片说明

现在,我要编辑要放入“自定义控件”中的内容

泛型

<Style TargetType="local:ChubosaurusCharts">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:ChubosaurusCharts">
                <Border
                    Background="{TemplateBinding Background}"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    BorderThickness="{TemplateBinding BorderThickness}">
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

默认情况下,它只是一个普通的<Border>:(,我不想要。由于这是一个制图库。我想在Visual Tree中添加一些内容,主要是a <Canvas>,所以我们可以将其更改为:

<Style TargetType="local:ChubosaurusCharts">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:ChubosaurusCharts">
                <Canvas Background="{TemplateBinding Background}" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" DataContext="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}}">
                    <ContentPresenter Content="{Binding Surface}"></ContentPresenter>
                </Canvas>                    
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

到现在为止,您应该猜测可以根据需要添加任意数量的XAML标签,以正确显示控件。我只想要一个<Canvas>


现在有了一点DataBinding Magic,我将Canvas绑定到控件的画布上以便于访问:)

public sealed class ChubosaurusCharts : Control
{
    public ChubosaurusCharts()
    {
        this.DefaultStyleKey = typeof(ChubosaurusCharts);
        this.Surface = new Canvas();
    }

    private Canvas surface;

    public Canvas Surface
    {
        get
        {
            return surface;
        }
        set
        {
            surface = value;
        }
    }
}

现在可以使用了:D

将可移植库添加到名称空间中添加的解决方案中。编译。

省略了疯狂的小学代数和我的RenderFunction(仅在画布上添加线条)

将我们的自定义控件添加到MainPage.xaml,您现在也可以从工具箱中拖动该控件:D

<chubo:ChubosaurusCharts x:Name="my_chart">

您辛勤工作的结果是:

在此处输入图片说明

欢呼声:D

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用sqlite数据库发布Windows Phone 8应用

来自分类Dev

Windows Phone 8新闻应用程序

来自分类Dev

Windows Phone 8的本地数据库

来自分类Dev

Windows Phone 8应用提交

来自分类Dev

阅读Windows Phone 8中的应用程序使用的权限

来自分类Dev

在Windows Phone 8上使用SQLite-net创建SQLite数据库文件

来自分类Dev

如何创建Windows Phone 8应用包?

来自分类Dev

如何确定Windows Phone 8(.1)上的蓝牙是否打开

来自分类Dev

任务延迟不等待(Windows Phone 8应用程序)

来自分类Dev

Windows Phone 8错误-应用程序安装失败

来自分类Dev

Windows Phone 8单元测试应用程序FileNotFoundException

来自分类Dev

在Ubuntu中开发Windows Phone 8应用程序的IDE

来自分类Dev

Windows Phone 8单元测试应用程序FileNotFoundException

来自分类Dev

Windows Phone 7.5和8的更新应用程序

来自分类Dev

Windows Phone 8-部署应用程序超时错误

来自分类Dev

更改Windows Phone 8应用程序的背景颜色

来自分类Dev

在Windows Phone 8应用程序中触发电话

来自分类Dev

从Windows Phone 8上的SMS自动启动应用程序

来自分类Dev

Live Messenger应用程序Windows Phone 8

来自分类Dev

Windows Phone 8中的应用程序栏

来自分类Dev

Windows Phone 8获得前台应用程序

来自分类Dev

Windows Phone 8显示phoneCallTask后,应用程序关闭

来自分类Dev

任务延迟不等待(Windows Phone 8应用程序)

来自分类Dev

适用于多种环境的应用程序(Windows Phone 8,Windows Phone 8.1,Windows 8,Windows 7,Windows XP)

来自分类Dev

我可以使用Windows Phone 8 SDK开发Windows Phone 7.1应用程序吗?

来自分类Dev

Windows Phone 8记录

来自分类Dev

Windows Phone 8的LockScreen

来自分类Dev

Windows Phone 8记录

来自分类Dev

Windows 8和Windows Phone 8无线安装应用程序

Related 相关文章

  1. 1

    使用sqlite数据库发布Windows Phone 8应用

  2. 2

    Windows Phone 8新闻应用程序

  3. 3

    Windows Phone 8的本地数据库

  4. 4

    Windows Phone 8应用提交

  5. 5

    阅读Windows Phone 8中的应用程序使用的权限

  6. 6

    在Windows Phone 8上使用SQLite-net创建SQLite数据库文件

  7. 7

    如何创建Windows Phone 8应用包?

  8. 8

    如何确定Windows Phone 8(.1)上的蓝牙是否打开

  9. 9

    任务延迟不等待(Windows Phone 8应用程序)

  10. 10

    Windows Phone 8错误-应用程序安装失败

  11. 11

    Windows Phone 8单元测试应用程序FileNotFoundException

  12. 12

    在Ubuntu中开发Windows Phone 8应用程序的IDE

  13. 13

    Windows Phone 8单元测试应用程序FileNotFoundException

  14. 14

    Windows Phone 7.5和8的更新应用程序

  15. 15

    Windows Phone 8-部署应用程序超时错误

  16. 16

    更改Windows Phone 8应用程序的背景颜色

  17. 17

    在Windows Phone 8应用程序中触发电话

  18. 18

    从Windows Phone 8上的SMS自动启动应用程序

  19. 19

    Live Messenger应用程序Windows Phone 8

  20. 20

    Windows Phone 8中的应用程序栏

  21. 21

    Windows Phone 8获得前台应用程序

  22. 22

    Windows Phone 8显示phoneCallTask后,应用程序关闭

  23. 23

    任务延迟不等待(Windows Phone 8应用程序)

  24. 24

    适用于多种环境的应用程序(Windows Phone 8,Windows Phone 8.1,Windows 8,Windows 7,Windows XP)

  25. 25

    我可以使用Windows Phone 8 SDK开发Windows Phone 7.1应用程序吗?

  26. 26

    Windows Phone 8记录

  27. 27

    Windows Phone 8的LockScreen

  28. 28

    Windows Phone 8记录

  29. 29

    Windows 8和Windows Phone 8无线安装应用程序

热门标签

归档