Silverlight 5 UserControl未出现在我的网格中

时间:2012-09-05 16:48:56

标签: silverlight

我正在使用Silverlight 5.我有一个简单的UserControl,如下所示:

<UserControl x:Class="GIS.VerticalDeformationGraphic"
    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" >
    <Viewbox Grid.Column="0" MinHeight="400" >
        <Canvas Width="65" Height="450">
            <Rectangle Canvas.Left="5" Canvas.Top="10" Width="15" Height="400" HorizontalAlignment="Left">
                <Rectangle.Fill>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                        <GradientStop Color="DarkRed" Offset="0.0" />
                        <GradientStop Color="Red" Offset="0.2" />
                        <GradientStop Color="Yellow" Offset="0.4" />
                        <GradientStop Color="LightGreen" Offset="0.5" />
                        <GradientStop Color="LightBlue" Offset="0.6" />
                        <GradientStop Color="Blue" Offset="0.8" />
                        <GradientStop Color="DarkBlue" Offset="1.0" />
                    </LinearGradientBrush>
                </Rectangle.Fill>
            </Rectangle>
        </Canvas>
    </Viewbox>
</UserControl>

我的xaml页面中有一个像这样的引用:

xmlns:local="clr-namespace:GIS"

我尝试将用户控件放在网格单元格中,如下所示:

<local:VerticalDeformationGraphic Grid.Column="0" />

如果我使用UserControl中的ViewBox并简单地将整个内容粘贴到网格中,我唯一要做的就是将Grid.Column分配给ViewBox并且它可以工作。我错过了什么让UserControl不会出现在UserControl中?

这正是我在页面中使用它的方式:

<Grid Grid.Row="1">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <!--<sdk:Label Grid.Column="0" FontSize="20" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10,1,0,1"
               Content="A Graphic Goes Here">
    </sdk:Label>-->
    <local:VerticalDeformationGraphic Grid.Column="0" Height="450" Width="65" />

请注意,标签在我评论之前已经有效。

1 个答案:

答案 0 :(得分:1)

代码隐藏必须调用InitializeComponent()。当我右键单击项目并选择Add / New Item / Silverlight时,我没有Silverlight UserControl的选项......所以我刚刚添加了一个xaml文件。