CanvasのAttachedPropertiesとIValueConverterでデータバインディングを使用して、オフセットを必要に応じて変換してみてください。例えば
:情報のため
class ImageToCanvasConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return -(int)value/2;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
// Two-way binding not supported
throw new InvalidOperationException();
}
}
<Grid.Resources>
<myAssembly:ImageToCanvasConverter x:Key="imageToCanvasConverter" />
<DataTemplate ...>
<Image Canvas.Left="{Binding Path=Width, Converter={StaticResource imageToCanvasConverter}, Mode=OneTime}"
Canvas.Top="{Binding Path=Height, Converter={StaticResource imageToCanvasConverter}, Mode=OneTime}"
... />
</DataTemplate>
</Grid.Resources>
私は別の方法で(XとYのオフセットのプロパティを作成し、単純に 'Image.RenderTransform'にバインドしていましたが、コンバーターを使用するあなたのやり方はまあまあです。私の次のステップになるでしょう。ありがとう!:) –
確かに、幸運:-) –