Я работаю в приложении WPF, используя карту Bing. Одна вещь, которая беспокоит меня, заключается в том, что если вы максимизируете окно и уменьшаете масштаб с помощью колеса мыши, вы можете масштабировать его достаточно далеко до того места, где карта меньше по высоте, чем границы контейнера, в котором он находится. просмотрел документацию, чтобы узнать, есть ли способ ограничить это. Я понимаю, что я могу подписаться на изменения событий увеличения/уменьшения и ограничить ZoomLevel
. (См. Прикрепленное изображение, которое показывает проблему, которая у меня есть). Я хочу знать, есть ли какое-либо свойство или другое средство либо в XAML, либо на карте, чтобы всегда гарантировать, что карта может заполнить контейнер независимо от размера окна независимо от уровня масштабирования. Я попытался установить HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
, но это все еще не решает проблему уменьшения. Любая помощь будет оценена по достоинству.Bing Map Уменьшить Stretch
xmlns:m="clr-namespace:Microsoft.Maps.MapControl.WPF;assembly=Microsoft.Maps.MapControl.WPF"
<m:Map x:Name="MapControl"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Center="{Binding CenterLocation,
Mode=TwoWay,
UpdateSourceTrigger=Explicit}"
CredentialsProvider="MAP_KEY"
ZoomLevel="{Binding ZoomLevel}">
<m:Map.Children>
<TextBlock FontSize="20"
Foreground="Blue"
Text="{Binding ReportText}" />
<m:MapItemsControl ItemTemplate="{StaticResource PinTemplate}" ItemsSource="{Binding WeatherItemSource}" />
</m:Map.Children>
</m:Map>
А вот изображение с серыми краями:
Не должно быть 'Math.log (mapHeight/256, 2) '(т.е. логарифм в базе 2) вместо' Math.Log (mapHeight/256) '? Кроме того, не нужно строго регулировать уровень масштабирования до целочисленного значения, так как свойство 'ZoomLevel' имеет тип' double'. – Clemens
yup. У меня тоже было это в моем тестовом приложении, но он забыл его при вводе в ответ. Должен использовать копирование/вставку. – rbrundritt