Спасибо за Ваш ответ. Я попытался обрезать изображение, но, похоже, масштабирование каким-то образом игнорирует все границы. (Я добавил StackPanel только для того, чтобы ограничить его выход за пределы ранее). Похоже, это ошибка.
ема: Я использую анимацию UWP Community Toolkit Scale, и она работает, как и ожидалось, для большинства изображений вGridView
, но для некоторых изображение выходит за пределы.(Пожалуйста, смотрите изображение ниже)
Я обнаружил, что проблема возникает, когда ширина изображения более чем в 2 раза (в 2 раза) превышает высоту изображения. Это когда изображение очень широкое.
Код
Я использую пользовательский элемент управления в качестве шаблона данных Xaml:
<!-- Grid View -->
<GridView x:Name="gridView" SelectionChanged="gridView_SelectionChanged">
<GridView.ItemTemplate>
<DataTemplate>
<local:GridViewMenu/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
<!-- GridViewMenu User Control markup -->
<Grid>
<StackPanel>
<Image Source="{Binding webformatURL}" Stretch="UniformToFill" PointerEntered="image_PointerEntered" PointerExited="image_PointerExited"/>
</StackPanel>
</Grid>
Код C #:
private void image_PointerEntered(object sender, PointerRoutedEventArgs e)
{
Image img = sender as Image;
img.Scale(centerX: (float)(grid.ActualWidth / 2),
centerY: 100,
scaleX: 1.2f,
scaleY: 1.2f,
duration: 500, delay: 0).StartAsync();
}
private void image_PointerExited(object sender, PointerRoutedEventArgs e)
{
Image img = sender as Image;
img.Scale(centerX: (float)(grid.ActualWidth / 2),
centerY: 100,
scaleX: 1f,
scaleY: 1f,
duration: 500, delay: 0).StartAsync();
}
Результат (верхнее левое изображение не соответствует ожидаемому, то есть выходит за границы)
Как я могу решить эту проблему?