2014-01-15 22 views
0

我有一個子項目,它是一個類,包含DataLib.cs和一個用戶控件MediumTile.xaml。這個用戶控件將被生成爲一個圖像,以將其用作平鋪背景。但在我必須動態地改變一些事情之前。那麼,如何在MediumTile.xaml中的LayoutRoot之上獲得控制權,例如設置背景顏色?如何在類庫中使用用戶控件XAML

事情是這樣的:

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

只要給它一個名字。例如:

+0

當然它已經有這個名字了 – user3168511

+0

啊,這是在一個單獨的項目中。您可以通過創建屬性來公開控件:public Grid Layout {get {return LayoutRoot; } } –

回答

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複選框字段中,選擇SubProject。

點擊側欄中的StartUp Project

確保Single StartUp Project指向CurrentProject。如果沒有,請設置它。

現在您已完成設置,現在需要實際使用MediumTile.xaml


  1. 要在其他XAML文件中使用MediumTile用戶控件,您將需要聲明

    的xmlns:customControls = 「CLR的命名空間:MyProject.UserControls」

內頁眉,並致電

<ListBox.ItemTemplate> 
    <DataTemplate> 
     <customControls:MediumTile/> 
... 
  1. 要在其他CS文件中使用此用戶控件,您將需要導入使用MyProject.UserControls命名空間

    ;

在頁面的頂部,並引用您的控制,像這樣(取決於你的用戶控件的構造函數),

MediumTile mediumTile = new MediumTile() 

關於您的LayoutRoot的問題,你可以簡單地設置背景顏色直接在UserControl上。 UserControl繼承自Control,該控件已具有Background屬性。

0

我從來沒有做過它windows phone 8,但是對於普通桌面應用程序,您可以通過添加以下引用做到這一點:

  • PresentationCore
  • PresentationFramework
  • WindowsBase

然後您可以創建並以正常方式訪問Control

+0

你能舉一個例子的語法嗎 – user3168511