让我们从简单的介绍开始。为了更好地理解我的问题,我已经大大简化了这个例子。
这个项目在Silverlight 4中。我有一个MainPage.xaml,它由一个按钮组成:
<Button x:Name="SelectedFillColor" Command="{Binding ChangeColorCommand}" Background="{Binding SelectedColor}">
<Button.Template>
<ControlTemplate>
<Ellipse Width="80" Height="80" Fill="{TemplateBinding Background}" Stroke="White" StrokeThickness="2"/>
</ControlTemplate>
</Button.Template>
</Button>
如您所见,我使用ChangeColorCommand命令来处理单击/触摸。在MainPage的代码隐藏中,我只是简单地将ViewModel绑定到DataContext
this.DataContext = new MainPageViewModel();
最后一步是我的ViewModel,它由命令初始化方法组成,在构造函数中启动:
private void InitializeCommands()
{
this.ChangeColorCommand = new RelayCommand(() =>
{
this.SelectedColor = new SolidColorBrush(Colors.Yellow);
});
}
有问题,
当我在我的平板电脑上作为网页运行它时,我使用两种设备:
谢谢
发布于 2011-11-01 13:28:08
好吧,我找到解决办法了。问题在于另一个控件--让我们称之为TestControl --发生在MainPage页面上。此TestControl控件在其构造函数中附加到FrameReported事件。
因此,MainPage支持"Touch events晋升为鼠标事件“场景,其中使用的TestControl使用FrameReported来处理触摸。现在,当我注释掉对FrameReported事件的订阅时,它可以正常工作,但我还不知道如何支持这两种场景。
https://stackoverflow.com/questions/7959449
复制