Windows runtime 如何禁用richeditbox垂直滚动

Windows runtime 如何禁用richeditbox垂直滚动,windows-runtime,richedit,Windows Runtime,Richedit,我使用RichEditBox允许用户输入文本(C#Windows 8) 我还允许在屏幕上重新定位RichEditBox 但通过触摸屏和手指,文本将滚动,而不是重新定位控件 如果使用鼠标,RichEditBox将在屏幕上重新定位 我试图禁用RichEditBox中的文本滚动以消除此问题。 试用 ScrollViewer.VerticalScrollModeProperty = ScrollBarVisibility.Disabled; 给出错误: 属性或索引器“Windows.UI.Xaml.C

我使用RichEditBox允许用户输入文本(C#Windows 8) 我还允许在屏幕上重新定位RichEditBox 但通过触摸屏和手指,文本将滚动,而不是重新定位控件 如果使用鼠标,RichEditBox将在屏幕上重新定位

我试图禁用RichEditBox中的文本滚动以消除此问题。 试用

ScrollViewer.VerticalScrollModeProperty = ScrollBarVisibility.Disabled;
给出错误: 属性或索引器“Windows.UI.Xaml.Controls.ScrollViewer.VerticalScrollModeProperty”无法分配给--它是只读的

有没有办法禁用RichEditBox中的文本滚动
或者用其他方法来解决这个问题?

您有两个问题:

  • 您试图将VerticalScrollModeProperty设置为不会更改滚动模式的内容-“ScrollBarVisibility.Disabled”会更改滚动条的可见性,但不会禁用滚动。相反,您需要使用“ScrollMode.Disabled”

  • VerticalScrollModeProperty是一个只能用getter(element.getValue(…)检索并用setter(element.setValue(…)更改的属性。某些属性要求您执行此操作,而不是直接访问它们(这是您尝试使用语法ScrollViewer.VerticalScrollModeProperty=someValue执行的操作)。将来,如果出现上述错误,下一步很可能是尝试对该属性使用getValue()和setValue()

  • 所以!如果您想禁用C#端的垂直滚动(如上所述),请使用以下命令:

    editBoxName.setValue(VerticalScrollModeProperty, ScrollMode.Disabled);
    
    如果您在样式表(如StandardStyles.xaml)中,并且希望在其中设置此属性,而不是通过编程方式进行设置(假设您想要多个禁用滚动的RichEditBox元素),请尝试以下操作:

    <Style x:Key="styleName" TargetType="RichEditBox">
        <Setter Property="ScrollViewer.VerticalScrollMode" Value="Disabled" />
        <!-- your other RichEditBox properties can go here, if you'd like -->
    </Style>
    
    
    
    最后一点注意-如果您选择样式表路线,为了正确使用该样式(“样式名”)获取RichEditBox,您需要在实例化RichEditBox的XAML中执行以下操作:

    <RichEditBox x:Name="myEditBox" Style="{StaticResource ResourceKey=styleName}" />
    

    禁用了scrollviewer模式而不是属性:

    <RichEditBox AcceptsReturn="True" IsSpellCheckEnabled="True" 
                             ScrollViewer.VerticalScrollMode="Disabled"
                             ScrollViewer.HorizontalScrollMode="Disabled"
                             TextWrapping="Wrap" IsTapEnabled="True" IsHoldingEnabled="True"
                             IsDoubleTapEnabled="True" IsRightTapEnabled="True"
                             IsReadOnly="False" Height="{Binding Height}" 
                             Width="{Binding Width}" TextAlignment="{Binding TextAlignment}"
                             FontFamily="{Binding FontFamily}" FontSize="{Binding FontSize}"
                             ManipulationMode="All" GotFocus="TextItem_GotFocus" KeyDown="TextItem_KeyDown"                             
                             ManipulationDelta="EditBox_ManipulationDelta"/>