2010-12-18 80 views
0

在XNA和其他框架中可以定義「2D世界」,我將使用這個術語,因爲它更容易理解。例如,Mario有兩個方向,他可以去 - 右和左;如果他向右移動,世界就會更新,所以他可以走在「二維空間」或世界。我想在我的應用程序中使用該功能。我怎麼能做到這一點?有沒有什麼好的解決方案?WPF中的2D世界

回答

1

您可以使用的ScrollViewer與隱蔽的酒吧:

<Window x:Class="Scrolls.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525" PreviewKeyDown="Window_PreviewKeyDown"> 
    <ScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" x:Name="scroller"> 
     <TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."/> 
    </ScrollViewer> 
</Window> 

後面的代碼:

private void Window_PreviewKeyDown(object sender, KeyEventArgs e) { 
    if (e.Key == Key.Right) 
     scroller.ScrollToHorizontalOffset(scroller.HorizontalOffset + 1); 
    else if (e.Key == Key.Left) 
     scroller.ScrollToHorizontalOffset(scroller.HorizontalOffset - 1); 
} 

只要把你的二維世界,而不是<TextBlock .../>

+0

好主意!坦克! – 2010-12-18 23:33:05

+0

如果你問我,這是Windows Phone 7頁面佈局的真正實現。太好了! :) – Machinarius 2010-12-19 02:20:47