2014-10-08 2 views
2

Как я могу заставить объект UI НЕ обрезаться, когда он частично находится за пределами экрана. У меня есть изображение, которое полностью не вписывается в экран. Когда я перетаскиваю его (TranslateY), он движется, как предполагается, но проблема в том, что часть, которая была вне экрана, не появляется, поэтому изображение резко обрезается. Единственная часть видимого изображения - это часть, которая первоначально подходит для экрана.Перевод изображения обрезается (как предотвратить)

Ps. Пожалуйста, не рекомендуем scollviewer, так как речь идет о жесте, чтобы сделать что-то конкретное в пользовательском интерфейсе, и ScrollViewer не подходит для этого.

Это в основном XAML (изображение в два раза превышает высоту дисплея)

<Grid x:Name="GestureScreen" ManipulationMode="TranslateY" RenderTransformOrigin="0.5,0.5"> 
    <Image x:Name="GestureImage" CacheMode="BitMapCache" Source="Assets/bg/draggable.png" /> 
</Grid> 

Это C# (не очень актуальна, но до сих пор)

void GestureScreen_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) 
{ 
    move.Y += e.Delta.Translation.Y; 
} 
+0

Нанесите отрицательный запас на изображение. –

+0

Отрицательное поле не решает проблему (изображение будет затем скопировано вверху). – Hardev

+0

Он не должен ничего зажимать, но я возьму ваше слово за это. –

ответ

2

Укажите строку и столбец для изображения, который непосредственно указывает Auto для обоих. Таким образом, размер изображения будет соответствовать его фактическому размеру, а не текущему размеру *по умолчанию размера экрана. Следовательно, вы будете иметь все изображение, как вытащили.

+0

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

+0

Это решение. Контейнер не расширялся с содержимым, превышающим то, что было видно на экране. Определяя высоту родительского (всего дочерних элементов), дочерние объекты теперь видны при перетаскивании. Другими словами (высота сетки = «1600»). Авто работал так же долго, как вы его определяете в определении rowdefinition, а не в самой сетке (имеет смысл сохранить динамику). Благодаря! – Hardev

Смежные вопросы