如何在类库中使用用户控件XAML

时间:2014-01-15 18:20:56

标签: c# xaml windows-phone-8

我有一个子项目,它是一个类,包含DataLib.cs和用户控件MediumTile.xaml。此用户控件将生成到图像以将其用作图块背景。但在我不得不动态地改变一些事情之前。那么如何在MediumTile.xaml中的LayoutRoot上方获得controll以设置背景颜色?

这样的事情:

MediumTile.LayoutRoot.Background = new SolidColorBrush(Color.FromArgb(255, 206, 23, 23);

2 个答案:

答案 0 :(得分:0)

我从来没有为windows phone 8做过,但对于普通的桌面应用程序,您可以通过添加以下引用来实现:

  • PresentationCore
  • PresentationFramework
  • WindowsBase

然后,您可以正常方式创建和访问Control

答案 1 :(得分:0)

MediumTile.xaml可能存在于某种命名空间中。

您可以在x:Class声明旁边的文件顶部找到UserControl的命名空间。

通常它看起来像

x:Class="MyProject.UserControls.MediumTile" 

如果您的项目设置正常。

如果查看MediumTile.xaml.cs,您应该看到如此的命名空间

namespace MyProject.UserControls
{
    public partial class MediumTile : UserControl
    ...

首先,您需要参考您的子项目。

假设你有一个像这样的项目结构......

CurrentProject/
    -MyPage.xaml

SubProject/
    -MediumTile.xaml

在Visual Studio中右键单击解决方案,然后单击Properties

在“属性”下,选择Project Dependencies

在下拉列表中选择CurrentProject。

Depends On复选框字段中,选择子项目。

单击侧栏中的StartUp Project

确保Single StartUp Project指向CurrentProject。如果没有,请设置它。

现在您已完成设置,您现在需要实际使用MediumTile.xaml


  1. 要在另一个XAML文件中使用MediumTile UserControl,您需要声明

    的xmlns:customControls = “CLR-名称空间:MyProject.UserControls”

  2. 页面标题内的

    ,然后调用

    <ListBox.ItemTemplate>
        <DataTemplate>
            <customControls:MediumTile/>
    ...
    
    1. 要在另一个CS文件中使用此UserControl,您需要导入命名空间

      使用MyProject.UserControls;

    2. 位于页面顶部,并像这样引用您的控件(取决于您的usercontrol的构造函数),

      MediumTile mediumTile = new MediumTile()
      

      关于LayoutRoot问题,您只需在UserControl上直接设置背景颜色即可。 UserControl继承自Control,它已具有Background属性。