2012-02-11 16 views
4

使用Windows 8開發者預覽版,我試圖用我已經創建使用內置在Windows Metro風格的模板簡單的用戶控件。 正如我卻沒有能夠讓我的應用程序,以解決參考,即使它是在同一個項目和命名空間中引用它的頁面的控制。我剛剛得到「找不到類型」 我查看了「構建」示例,並找不到使用用戶控件的示例C#項目。 有誰知道我在哪裏可以找到一個?Windows 8的用戶控制樣品

回答

2

檢查http://asyncui.codeplex.com/SourceControl/changeset/view/7969#139603

您可以通過右鍵單擊您的項目,選擇添加/新項目(按Ctrl + Shift + A),然後選擇「用戶控制」從項目模板列表中創建一個UserControl。然後你的名字,並以您可以修改添加喜歡這裏更多的UI的XAML結束:

<UserControl 
    x:Class="Xyzzer.AsyncUI.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    d:DesignHeight="768" 
    d:DesignWidth="1366"> 

    <Grid 
     x:Name="LayoutRoot" 
     Background="#FF0C0C0C"> 
     <Grid 
      VerticalAlignment="Top" 
      Height="140"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition 
        Width="120" /> 
       <ColumnDefinition 
        Width="*" /> 
      </Grid.ColumnDefinitions> 
      <Button 
       x:Name="BackButton" 
       IsEnabled="False" /> 
      <TextBlock 
       x:Name="PageTitle" 
       Text="Some Page!" 
       Grid.Column="1" /> 
     </Grid> 
    </Grid> 
</UserControl> 

和後面的代碼是這樣的:

using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using Windows.Foundation; 
using Windows.UI.Popups; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Data; 

namespace Xyzzer.AsyncUI 
{ 
    partial class MainPage 
    { 
     public MainPage() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

然後,您可以使用控制其他地方的XAML像這樣:

<xa:MainPage 
    xmlns:xa="using:Xyzzer.AsyncUI" /> 
+0

請信息添加到這個答案,使之更容易理解。對我來說,與以前的版本比較並不會突出顯示任何更改。 – Morothar 2014-01-09 09:09:34

+1

原始海報詢問了有關UserControl實現的示例,並將其鏈接到當時似乎滿足他的一個。我可以添加更多細節。 – 2014-01-09 22:56:00

+0

非常感謝您投入額外時間! – Morothar 2014-01-10 11:13:58

1

即使用戶控件是在同一個名字,你將不得不宣佈該命名空間在XAML中使用它。嘗試添加屬性到您的網頁元素

xmlns:uc="YourApplication.Namepace" 

和前綴爲您的XAML控制

<uc:YourUserControl />. 

確保您的項目時,你是不是引用了用戶控制的基礎之上。用戶控件中的錯誤將導致這個問題。

0

如果您使用的是Metro應用的默認項目模板,頁面的命名空間通常命名爲局部的,它已經從模板創建如下新的一頁。

xmlns:local="using:App1" 

請注意,「使用:」是metro應用程序中的新語法。

所以,你可以參考你的用戶控件作爲

<local:MyUserControl1/> 

如果從工具箱拖動的MyUserControl到XAML的設計師,這一切都是自動的。你不需要爲此編寫任何代碼。