yandexmapkit-wp icon indicating copy to clipboard operation
yandexmapkit-wp copied to clipboard

Свойство ymc:MapLayer.Alignment для PushPin

Open AlexeiIgorevich opened this issue 12 years ago • 8 comments

Свойство ymc:MapLayer.Alignment корректно устанавливает только значение «BottomCenter», при установке других значений, например «BottomLeft», контент «привязывается» к левому верхнму углу. В значение «BotttomLeft» - ошибка три буквы «t».

   <ymc:MapLayer>
            <ymc:MapItemsControl x:Name="mapItemsControl" ItemsSource="{Binding Points}">
                <ymc:MapItemsControl.ItemTemplate>
                    <DataTemplate>
                        <ymc:PushPin 
                            ymc:MapLayer.Location="{Binding Position}"
                            State="Expanded"
                            Template="{StaticResource PinTemplate}"
                            ymc:MapLayer.Alignment="BotttomLeft"
                            CacheMode="BitmapCache"
                            ymc:PushPinManagerHelper.GroupKeys="All"
                            >
                          </ymc:PushPin>
                    </DataTemplate>
                </ymc:MapItemsControl.ItemTemplate>
            </ymc:MapItemsControl>
        </ymc:MapLayer>

AlexeiIgorevich avatar Dec 10 '12 10:12 AlexeiIgorevich

Сейчас работают TopCenter, Center, BottomCenter. Если задано любое другое значение, привязываем верхний левый угол.

В качестве временного решения вы можете воспользоваться свойством MapLayer.PositionOffsetProperty, которое позволяет задать отступ (в том числе отрицательный).

kzaikin avatar Dec 11 '12 10:12 kzaikin

Обработку остальных значений выравнивания запланировали

kzaikin avatar Dec 11 '12 10:12 kzaikin

Спасибо за ответ. Не совсем понял, как использовать PositionOffset, пример был бы очень кстати. P.S. есть ли возможность локализовать карту, т.е. выдавать названия на английском языке?

AlexeiIgorevich avatar Dec 11 '12 12:12 AlexeiIgorevich

Задавайте его одновременно с Location, чтобы сдвинуть ваш контрол на N пикселей

Если задать у YourControl PosıtionOffset в размере (-YourControl.ActualWidth, -YourControl.ActualHeight), то YourControl будет пришпилен к карте правым нижним углом

kzaikin avatar Dec 12 '12 11:12 kzaikin

Локализация карты пока не поддерживается

kzaikin avatar Dec 12 '12 11:12 kzaikin

К сожалению, PosıtionOffset не решает проблему не корректно работающего PushPinContentVisibilityBehavior(отступ учитывается в размере контрола), более того появляется весьма не приятный «скачок», отсутствующей при «выравнивании» при помощи margin.

AlexeiIgorevich avatar Dec 12 '12 19:12 AlexeiIgorevich

Можно подробней про "проблему некорректно работающего PushPinContentVisibilityBehavior"? Возможно стоит завести отдельный вопрос

kzaikin avatar Dec 13 '12 08:12 kzaikin

Я не могу назвать это ошибкой, скорее не совсем нормальное поведение: если для контрола задан отступ (не важно каким способом) PushPinContentVisibilityBehavior учитывает его при выравнивании элемента на экране, т.е. при нажатии на маркер ВьюПорт сдвигается больше чем надо или вообще, сдвигается в другую сторону, в зависимости от того в какой части экрана располагается маркер.

AlexeiIgorevich avatar Dec 14 '12 05:12 AlexeiIgorevich