2010-01-12 66 views
1

我有了一個堆疊面板內的幾個帆布控制Silverlight的用戶控件。我知道我可以在Xaml中手動設置每個畫布面板的寬度和高度,但我希望它們的大小相同。Silverlight的帆布新手問題

有一些方法可以讓我在UserControl.Resources位置定義一個屬性:

<UserControl.Resources> 
    <Setter Property Name="aWidth" Value="50" /> 
    <Setter Property Name="aHeight" Value="50" /> 
</UserControl.Resources> 

<StackPanel Orientation="Horizontal"> 
<Canvas x:Name="canvas1" Width="{StaticResource aWidth}" Height="{StaticResource aHeight}" /> 
<Canvas x:Name="canvas2" Width="{StaticResource aWidth}" Height="{StaticResource aHeight}" /> 
</StackPanel> 

讓每個面板是相同的寬度和高度,我只需要設置一次。

回答

1

高度和寬度,這個XML命名空間聲明添加到您的XAML根:

xmlns:sys="clr-namespace:System;assembly=mscorlib" 

並將您的資源改爲如下所示:

<UserControl.Resources> 
    <sys:Double x:Key="aWidth" >50</sys:Double> 
    <sys:Double x:Key="aHeight" >50</sys:Double> 
</UserControl.Resources> 

現在您應該可以按照您的需要使用{StaticResource}。

0

使用網格而不是

<Grid Width="600" Height="300"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="*" />   
    </Grid.ColumnDefinitions> 
    <Canvas x:Name="canvas1" /> 
    <Canvas x:Name="canvas2" Grid.Column="1" /> 
</Grid> 

無論是帆布的將有300 300