2013-04-11 83 views
2

我正在使用RichEditBox來允許用戶輸入文本(C#Windows 8) 我也允許在屏幕上重新定位RichEditBox 但是通過觸摸屏和手指滾動文本而不是重新定位控件 如果使用鼠標,RichEditBox被重新定位在屏幕上如何禁用richeditbox垂直滾動

我試圖禁用RichEditBox中的文本滾動以消除此問題。試圖用

ScrollViewer.VerticalScrollModeProperty = ScrollBarVisibility.Disabled; 

給出了錯誤: 屬性或索引「Windows.UI.Xaml.Controls.ScrollViewer.VerticalScrollModeProperty」不能被分配到 - 它是隻讀

有什麼辦法來禁用在RichEditBox 或任何其他方式來解決這個問題的文字滾動?

回答

0

你有兩個問題:

  1. 你試圖VerticalScrollModeProperty設置的東西,不改變滾動模式 - 「ScrollBarVisibility.Disabled」改變滾動條的可見性,但它不」禁用滾動。相反,你會想使用「ScrollMode.Disabled」。

  2. 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正確使用該樣式( 「styleName」),您需要在實例化RichEditBox的XAML中執行以下操作:

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

得到它與禁用的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"/>