2011-05-24 74 views
2

在Silverlight中可以在一個頁面上並排放置兩個控件嗎?在一個頁面上只有一個用戶控件似乎非常嚴格。Silverlight中每個頁面有兩個用戶控件?

我是silverlight的新手。但是每個頁面似乎在主頁面XAML的頂部都有這個「UserControl x:Class ...」。那麼如果你想有一個應用程序,那裏有兩個並排的,互相影響的應用程序呢?

OK,這不是在App,它是在page.xaml。所以我想進一步解釋讓我問這個問題。是否有可能在onw應用程序中有兩個頁面?

我想有兩個預構建控件在同一頁上(來的參觀者控制和vectorlight樹控件)。該應用的格式看起來是這樣的:

enter image description here

所以我想在左側的樹狀視圖和一個應用程序的右側VISI控制。這可能嗎?

樹視圖示例具有這種用戶控制碼

<UserControl x:Class="TreeViewProgrammatic.Page" 

xmlns="http://schemas.microsoft.com/client/2007" 

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 

xmlns:liquidTreeView="clr-namespace:Liquid;assembly=Liquid.TreeView" 

Width="400" Height="300"> 

和其他控制具有這樣的用戶控制碼:

<UserControl x:Class="LiveUpdate.Page" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Width="500" Height="340"> 

是有一個頁面上具有這兩者的方式.XAML?

+0

請詳細說明您的問題 - 例如,您是否嘗試過使用'Grid'來佈置項目,其他控件?實際上,你是在討論應用程序中的_或在託管頁面_內? – 2011-05-24 14:13:04

+0

它可以在託管頁面內完成嗎?我可以在一個託管頁面中擁有兩個控件嗎? – xarzu 2011-05-24 14:30:01

回答

1

我會解釋你的要求。您有兩個衍生品UserControl,其中包含部分第三方控件(實際上與需求無關)以及您自己的一些代碼,以使這些控件執行您想要的操作。

現在你想有他們兩個看到並排用戶側,他們彼此所以它希望他們在同一的Silverlight應用程序運行的互動。

你叫他們倆的「頁面」,但然後把他們安置在自己的命名空間(可能是因爲你實際上已經創建了兩個probjects)。所以第一步是創建一個新的Silverlight應用程序,並把它們都在這同一個項目,讓這個項目稱爲「Xarzu1」,讓你也衍生UserControl重命名爲TreeViewProgrammaticLiveUpdate所以我們沒有用的無用名稱的兩個控制「頁」。這樣它看起來像這樣

現在編輯MainPage.xaml中: -

<UserControl x:Class="Xarzu1.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" 
    xmlns:local="clr-namespace:Xarzu1" 
    mc:Ignorable="d" 
    d:DesignHeight="400" d:DesignWidth="800"> 
    <Grid x:Name="LayoutRoot"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="2*" /> 
     </Grid.ColumnDefinitions> 
     <local:TreeViewProgrammatic /> 
     <local:LiveUpdate /> 
    </Grid> 
</UserControl> 

現在無論你的控件是並排顯示。

+0

所以你說的是這個。有一個主頁,然後其他xamls是子頁面? TreeViewProgrammatic和LiveUpdate是否擁有自己的XAML頁面? – xarzu 2011-05-24 23:56:52

+0

IDE不喜歡「本地」。當我輸入「<本地...」時,編輯器會抱怨它沒有被定義。我該如何解決? – xarzu 2011-05-25 00:07:45

+0

哦,我的天哪,它的作品。 – xarzu 2011-05-25 00:35:09

0

實例化用戶控件的2個實例時是否出現錯誤?據我所知,應該可以在Silverlight頁面中擁有多個用戶控件。你能發表一些關於你想要做什麼的代碼嗎?

+0

那不是。我想在一個頁面上有兩個不同的控件。這可能嗎? – xarzu 2011-05-24 14:29:17

1

想我明白你的意思,Page一個控件本身(根控件)並且可以包含控件;最初它應該包含一個Grid橫跨Page的大小,這意味着你可以放置在Grid控制消耗的Page的所有空間。我們可以,不過,定義Column S和 S中Grid內,所以,可以這樣考慮:

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 

    <TextBlock Grid.Column="0" Text="I'm on the left side!" /> 
    <TextBlock Grid.Column="1" Text="I'm on the right side!" /> 
</Grid> 

這同樣適用於定製UserControl項目 - 本身是根控制和那些添加到它是兒童,這是組成一個複合控件的原因。

+0

Silverlight頁面上的第一個控件不應該是UserControl嗎? – xarzu 2011-05-24 14:42:10

+0

你的意思是根控制,就像在子控制主機中一樣?是。將其放置在控件/頁面的主體中以檢查結果。 – 2011-05-24 14:44:18

相關問題