1
배경에 맞게 크기를 조정할 수있는 캔버스가 있습니다.캔버스 크기를 배경의 이미지 크기에 바인딩 ImageBrush
여기서 하나의 장애물은 컨트롤이 인스턴스화 된 다음 이미지가 전달되어 ImageBrush로 할당된다는 것입니다. 다른 장애물은 WPF와 Silverlight 모두에 대해이 컨트롤을 만들고 ImageBrush가 다르다는 것입니다 (즉 이벤트를 공유하지 않음).
편집 :
<UserControl x:Class="Escalon.Annotations.AnnotationControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="400" Width="500" >
<ScrollViewer Name="ctlScrollViewer" HorizontalScrollBarVisibility="Auto" Height="400" Width="500">
<Canvas Name="ctlSizingCanvas" >
<Canvas Name="ctlCanvas" Loaded="ctlCanvas_Loaded" Height="400" Width="500"
MouseLeftButtonDown="MouseLeftButtonDownHandler" MouseMove="Canvas_MouseMove" MouseLeftButtonUp="Canvas_MouseLeftButtonUp" >
<Canvas.RenderTransform>
<ScaleTransform x:Name="ctlZoomTransform" />
</Canvas.RenderTransform>
<Canvas.Background>
<ImageBrush ImageSource="{Binding Source}" Stretch="UniformToFill" ></ImageBrush>
</Canvas.Background>
</Canvas>
</Canvas>
</ScrollViewer>
</UserControl>
문제는 내가 높이와 너비가없는 ImageBrush와 컨트롤을 사용하고, Image 컨트롤을 사용하지 않는 것이다.
XAML을 표시 할 수 있습니까? Canvas의'Height' /'Width'를 이미지의'ActualHeight' /'ActualWidth'에 바인딩 할 수 있습니다. – Rachel
안녕하세요, Grid 대신 Canvas를 사용해야하는 특별한 이유가 있습니까? 전자는 이미지의 크기에 따라 크기가 조정됩니다. –
이 컨트롤을 사용하여 마우스로 다른 컨트롤을 그립니다. – PhilBrown