Silverlight 4 ContextMenu и ScaleTransform - PullRequest
       30

Silverlight 4 ContextMenu и ScaleTransform

0 голосов
/ 26 апреля 2011

ContextMenu, предоставляемый Silverlight 4 Toolkit, работал прекрасно, пока я не реализовал <code><RenderTransform> в моем XAML, чтобы масштабирование приложения Silverlight соответствовало всему окну браузера (следуя этому небольшому учебнику)

Когда все работало отлично, перед обучением мой XAML выглядел так:

<UserControl>
    <Grid>
        <!-- Rest of app here... -->
    </Grid>
</UserControl>

Теперь мое приложение выглядит так:

<UserControl>
    <Canvas>
        <Canvas.RenderTransform>
            <ScaleTransform [vars]></ScaleTransform>
        </Canvas.RenderTransform>
        <Grid>
            <!-- Rest of app here... -->
        </Grid>
    </Canvas>
</UserControl>

Масштабирование работает отлично, но теперь, когда я щелкаю правой кнопкой мыши, ContextMenu не появляется там, где должно (под мышью). Вместо этого он отображается в той же позиции х, что и мышь, но отображается в самом верху приложения. Кроме того, он очень глючный, мне приходится постоянно нажимать, чтобы он исчез, и я не могу щелкнуть правой кнопкой мыши в другом месте, чтобы снова вызвать его, и он не масштабируется вместе с остальной частью приложения.

Что может быть причиной этого? Есть ли правильный способ исправить это, или я должен просто применить смещение к меню, чтобы переместить его на мышь?

1 Ответ

1 голос
/ 26 апреля 2011

Вам нужно будет передать координаты курсора через обратное преобразование масштаба, чтобы преобразовать точку экрана в точку, которую понимает ваше приложение.

...