我正在使用 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" />
请注意,标签在我将其注释掉之前有效。