3

VB.NET と WPF を使用してタッチスクリーン デバイスで実行する GUI アプリケーションを作成しています。キオスク アプリのように、常に全画面表示にする必要があります。ウィンドウは、いかなる方法でもサイズ変更または移動できてはなりません。このウィンドウには、ユーザーが現在リストをドラッグしてスクロールできる ListBox が含まれています。私が見ている問題は、ユーザーがリストをドラッグすると、ウィンドウ全体が少し移動し、その下のデスクトップが露出し、ユーザーがドラッグを停止すると元の位置に戻ることです。ユーザーが ListBox をドラッグしてすべてのリスト項目を表示できるようにしながら、ウィンドウを固定したままにする方法を理解できませんでした。これが私のコードのやや単純化されたバージョンです:

<Window  
  x:Class="MainWindow"  
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="MainWindow"  
  WindowStyle="None"  
  WindowState="Maximized"  
  WindowStartupLocation="CenterScreen"  
  KeyboardNavigation.TabNavigation="None"  
  Topmost="True"  
  Focusable="False"  
  ResizeMode="NoResize"  
  ShowInTaskbar="False"  
  MaxHeight="1080px"  
  MaxWidth="1920px">  
  <Grid>  
     <ListBox
       x:Name="docList"  
       ScrollViewer.HorizontalScrollBarVisibility="Hidden"  
       ScrollViewer.VerticalScrollBarVisibility="Hidden"
       BorderThickness="0">  
       <TextBlock Text="Item1" />  
       <TextBlock Text="Item2" />  
       <TextBlock Text="Item3" />  
       <TextBlock Text="Item4" />  
       <TextBlock Text="Item5" />  
       <TextBlock Text="Item6" />  
     </ListBox>
  </Grid>  
</Window>  
4

1 に答える 1

4

OnManipulationBoundaryFeedback(object sender, TouchEventArgs e)リストボックスでイベントを処理し、e.Handledプロパティを設定するtrueと、アプリケーションウィンドウの「バウンス」が防止されるはずです。

他のコントロールが同じ動作を引き起こす可能性を軽減するために、バブリングイベントであるため、ウィンドウレベルでイベントを処理することも可能かもしれません (私は今まで考えていませんでした)。

于 2010-09-30T12:54:26.930 に答える