已经有一段时间,我正在尝试做类似的事情,现在我正在抛出一个NotImplementedException ...我的意思是,扔在毛巾上。你是我最后的希望。在已禁用的WPF中处理单击事件或MouseDown StackPanel
所以,我的目标是:当用户点击它时启用StackPanel以实现用户友好的目的。
我在这个禁用的StackPanel中有一些项目,它位于窗口内的Grid内的ScrollViewer内部。
有我的代码的理解部分:
<Grid x:Name="MainGrid">
<Grid.RowDefinitions>
<RowDefinition MinHeight="30" MaxHeight="30"/>
<RowDefinition MinHeight="22" MaxHeight="22"/>
<RowDefinition MinHeight="155" Height="155"/>
<RowDefinition MinHeight="130"/>
<RowDefinition MinHeight="25" MaxHeight="25"/>
<RowDefinition MinHeight="22" MaxHeight="22"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="355" Width="360" />
<ColumnDefinition MinWidth="330" />
<ColumnDefinition MinWidth="280" />
</Grid.ColumnDefinitions>
<ScrollViewer Grid.Column="2" Grid.Row="3" VerticalScrollBarVisibility="Auto">
<StackPanel IsEnabled="False" IsEnabledChanged="ioStackPanel_IsEnabledChanged">
<Grid Height="22">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="110"/>
<ColumnDefinition/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="20"/>
</Grid.ColumnDefinitions>
</Grid>
</StackPanel>
</ScrollViewer>
</Grid>
我想这样的事情已经:
<ScrollViewer Grid.Column="2" Grid.Row="3" VerticalScrollBarVisibility="Auto" MouseDown="ScrollViewer_MouseDown">
private void ScrollViewer_MouseDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("Well done bro!");
}
但没有什么提高。没有消息框显示。
当您设置的IsEnabled为false,控制将停止响应输入。所以第一个不要禁用堆栈面板。 – cvraman