【发布时间】:2017-05-08 14:38:37
【问题描述】:
触摸:
鼠标:
如何告诉ScrollViewer 从代码开始使用触摸式滚动条?
这是一个例子:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ScrollViewer Name="scrollViewer1" HorizontalScrollBarVisibility="Visible" >
<Image Stretch="UniformToFill">
<Image.Source>
<BitmapImage x:Name="bitmapImage1" UriSource="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png"></BitmapImage>
</Image.Source>
</Image>
</ScrollViewer>
</Grid>
还有:
public sealed partial class MainPage : Page
{
DispatcherTimer dispatcherTimer1 = new DispatcherTimer { Interval = TimeSpan.FromSeconds(5) };
bool SE;
public MainPage()
{
this.InitializeComponent();
dispatcherTimer1.Tick += DispatcherTimer1_Tick;
dispatcherTimer1.Start();
}
private void DispatcherTimer1_Tick(object sender, object e)
{
if (SE = !SE) bitmapImage1.UriSource = new Uri("https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/se/se-icon.png");
else bitmapImage1.UriSource = new Uri("https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png");
scrollViewer1.ChangeView(SE ? 1 : 0, SE ? 1 : 0, null);
}
}
如果您运行此程序(至少在支持触控的 PC 上),滚动条最初将是触控的。如果然后用鼠标将光标移到它上面,它将变为鼠标。如果你再触摸它(在滚动条被隐藏之后)它会恢复触摸。
我想以编程方式告诉它从一个更改为另一个。怎么可能呢?如果唯一的方法是编辑模板 - 没有硬编码the template 怎么办?只是修复需要修复的细节。需要明确的是:我希望能够调用一种可以从一个更改为另一个的方法:void ChangeTo(bool mouse) { ... }。 (不过,如果做不到这一点,只是强制 ScrollViewer 始终处于一种模式,这在某种程度上是一种解决方法。)
【问题讨论】:
标签: c# xaml uwp win-universal-app uwp-xaml