我在WinRT的觸摸支持方面苦苦掙扎。如何讓框架在WinRT中上下移動?
我有一個包含TextBlock的框架。 TextBlock可以有不同數量的文本,這可以使框架延伸到畫布底部以下。如果發生這種情況,我希望用戶能夠觸摸框架並將其向上移動,以便他們完成閱讀文本。如果他們一直向上移動框架,則當框架的底部距帆布底部的設定邊距時應該停止。將它向下移動也一樣。使用慣性功能也是首選。
如果有人可以提供一些方向,我會很感激。
我在WinRT的觸摸支持方面苦苦掙扎。如何讓框架在WinRT中上下移動?
我有一個包含TextBlock的框架。 TextBlock可以有不同數量的文本,這可以使框架延伸到畫布底部以下。如果發生這種情況,我希望用戶能夠觸摸框架並將其向上移動,以便他們完成閱讀文本。如果他們一直向上移動框架,則當框架的底部距帆布底部的設定邊距時應該停止。將它向下移動也一樣。使用慣性功能也是首選。
如果有人可以提供一些方向,我會很感激。
我會建議一個包裹的ScrollViewer在你的文字塊,使用戶能夠在屏幕上滾動看到所有的文本。
<ScrollViewer>
<TextBlock Content="Very long content goes here" />
</ScrollViewer>
對於附加信息,請查看這些網站指出:
我想通了......
<Canvas x:Name="MainCanvas" ManipulationMode="TranslateRailsX" IsRightTapEnabled="False" IsDoubleTapEnabled="False" Margin="50,50,716,0" Width="600" ManipulationDelta="MainFrame_ManipulationDelta_1">
<Canvas.RenderTransform>
<CompositeTransform x:Name="ScrollMain"></CompositeTransform>
</Canvas.RenderTransform>
<Frame x:Name="MainFrame" Background="Beige" Height="auto" Width="600">
<RichTextBlock x:Name="MainContent" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="18" FontFamily="Segoe Script" Width="540" HorizontalAlignment="Left" Margin="30,10,0,10" Foreground="Black" Height="auto" IsDoubleTapEnabled="False" IsHoldingEnabled="False" IsRightTapEnabled="False" IsTapEnabled="False" ManipulationMode="None" IsTextSelectionEnabled="False"/>
</Frame>
</Canvas>
MainCanvas.ManipulationMode = ManipulationModes.TranslateY | ManipulationModes.TranslateRailsY | ManipulationModes.TranslateInertia;
private void MainFrame_ManipulationDelta_1(object sender, ManipulationDeltaRoutedEventArgs e)
{
CompositeTransform transform = ScrollMain as CompositeTransform;
double yDelta = e.Delta.Translation.Y;
double bDelta = (MainFrame.ActualHeight - pageRoot.ActualHeight + MainCanvas.Margin.Top + MainCanvas.Margin.Top) * -1;
if (transform.TranslateY + yDelta > 0)
{
yDelta = transform.TranslateY * -1;
}
if (transform.TranslateY + yDelta < bDelta)
{
transform.TranslateY = bDelta;
}
else
{
transform.TranslateY += yDelta;
}
base.OnManipulationDelta(e);
}
我確實有一個問題......我只能從畫布邊緣移動框架......如果我觸摸文本框區域,什麼都不會發生......所以我需要弄清楚如何將文本塊觸摸發送給幀。 – 2013-03-24 17:24:08
那會是怎樣一種傳統非觸摸窗口應用程序將工作。觸摸界面不應該這樣工作。用戶應該觸摸塊並上下移動。 – 2013-03-24 14:29:41
我想,這實際上取決於你正在創建的應用和UI。如果想要使用滾動查看器,但不喜歡滾動時的滾動條UI,可以通過更改默認模板並將其設置爲不透明度爲0來隱藏它,同時保持contentpresenter的可見性。 – 2013-03-25 15:16:06