私はSilverlight5を使用しています。次のような単純な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" />
コメントアウトする前にラベルが機能したことに注意してください。