Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用ctrl+;滚轮_C#_Wpf - Fatal编程技术网

C# 如何使用ctrl+;滚轮

C# 如何使用ctrl+;滚轮,c#,wpf,C#,Wpf,我有一些RichTextBox: <RichTextBox x:Name="logTextBox" MouseWheel="LogTextBox_MouseWheel" ... > 但有一个问题。为了让它工作,我需要向上/向下滚动文本框的垂直开始/结束。但我希望它在任何地方都能正常工作,在整个文本框中。如何解决此问题?请改用PreviewMouseWheel,并确保设置了已处理标志: <RichTextBox x:Name="logTextBox" PreviewMouse

我有一些
RichTextBox

 <RichTextBox x:Name="logTextBox" MouseWheel="LogTextBox_MouseWheel" ... >

但有一个问题。为了让它工作,我需要向上/向下滚动文本框的垂直开始/结束。但我希望它在任何地方都能正常工作,在整个文本框中。如何解决此问题?

请改用PreviewMouseWheel,并确保设置了已处理标志:

<RichTextBox x:Name="logTextBox" PreviewMouseWheel="LogTextBox_PreviewMouseWheel" />


private void LogTextBox_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
    if (Keyboard.Modifiers != ModifierKeys.Control)
    {
        return;
    }

    e.Handled = true;
    if (e.Delta > 0)
    {
        ++logTextBox.FontSize;
    }
    else
    {
        --logTextBox.FontSize;
    }
}

私有无效日志文本框\u预览鼠标滚轮(对象发送器,鼠标滚轮事件参数e)
{
if(Keyboard.Modifiers!=ModifierKeys.Control)
{
回来
}
e、 已处理=正确;
如果(e.Delta>0)
{
++logTextBox.FontSize;
}
其他的
{
--logTextBox.FontSize;
}
}

改用PreviewMouseWheel,并确保设置了Handled标志:

<RichTextBox x:Name="logTextBox" PreviewMouseWheel="LogTextBox_PreviewMouseWheel" />


private void LogTextBox_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
    if (Keyboard.Modifiers != ModifierKeys.Control)
    {
        return;
    }

    e.Handled = true;
    if (e.Delta > 0)
    {
        ++logTextBox.FontSize;
    }
    else
    {
        --logTextBox.FontSize;
    }
}

私有无效日志文本框\u预览鼠标滚轮(对象发送器,鼠标滚轮事件参数e)
{
if(Keyboard.Modifiers!=ModifierKeys.Control)
{
回来
}
e、 已处理=正确;
如果(e.Delta>0)
{
++logTextBox.FontSize;
}
其他的
{
--logTextBox.FontSize;
}
}

这在VB.NET中运行良好:

Private Sub TextBox1_MouseWheel(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseWheel 

    If My.Computer.Keyboard.CtrlKeyDown = True Then
        If e.Delta > 0 Then
            If TrackBar1.Value = 100 Then

            Else
                TrackBar1.Value += 1
                Label1.Font = New Font(Label1.Font.FontFamily, TrackBar1.Value)
                TextBox1.Font = Label1.Font
            End If
        Else
            If TrackBar1.Value = 1 Then

            Else
                TrackBar1.Value -= 1
                Label1.Font = New Font(Label1.Font.FontFamily, TrackBar1.Value)
                TextBox1.Font = Label1.Font
            End If
        End If
        Return
    End If

End Sub

这在VB.NET中运行良好:

Private Sub TextBox1_MouseWheel(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseWheel 

    If My.Computer.Keyboard.CtrlKeyDown = True Then
        If e.Delta > 0 Then
            If TrackBar1.Value = 100 Then

            Else
                TrackBar1.Value += 1
                Label1.Font = New Font(Label1.Font.FontFamily, TrackBar1.Value)
                TextBox1.Font = Label1.Font
            End If
        Else
            If TrackBar1.Value = 1 Then

            Else
                TrackBar1.Value -= 1
                Label1.Font = New Font(Label1.Font.FontFamily, TrackBar1.Value)
                TextBox1.Font = Label1.Font
            End If
        End If
        Return
    End If

End Sub

如果将事件放在表单而不是文本框上会发生什么?如果将事件放在表单而不是文本框上会发生什么?将来,如果问题指定了一种语言,请使用该语言回答。显然这都是.NET,所以它应该很容易翻译。但是,如果读者正在与.NET API作斗争,那么换掉该语言可能会增加混乱。将来,如果问题指定了一种语言,请使用该语言回答。显然这都是.NET,所以它应该很容易翻译。但是,如果读者正在为.NETAPI而挣扎,那么换掉该语言可能只会增加混乱。