2014-02-24 53 views
5

我想從用戶輸入(例如鼠標滾輪和觸摸屏)禁用我的FlipView(水平滾動)上的所有導航。在FlipView上禁用導航

翻譯視圖應該改變其選定索引的唯一方法是編程式的,我已經刪除了FlipView風格的側面按鈕。

我試着改變一些ScrollViewer的風格,但我無法設法阻止一切。任何人都可以暗示正確和乾淨的方式來做到這一點?

+0

在它上面放一個空格'Grid'。它會阻止所有的用戶輸入。 –

+0

問題是,我在'FlipViewItems'中有我希望用戶能夠與之交互的控件。 – Max

+0

嘗試更改FlipView的'ManipulationMode'。之後,您可以嘗試執行諸如從樣式中刪除左右按鈕的操作。 –

回答

5

我通過覆蓋ControlTemplate和更改ManipulationMode,ItemsPresenter找到解決方案。只要將這個代碼的FlipView內:

<FlipView.Template> 
    <ControlTemplate> 
     <ItemsPresenter ManipulationMode="None"></ItemsPresenter> 
    </ControlTemplate> 
</FlipView.Template> 

在我看來,這不應該是很難做一些簡單的像禁止用戶交互。應該有一個屬性來做到這一點。

+0

我只是意識到這實際上取代了整個ControlTemplate。正確的方法是繼承原始的ControlTemplate,以便能夠以編程方式進行翻頁。在ItemsPresenter禁用時使用具有ManipulationMode的自定義FlipView樣式:[link](http://pastebin.com/raw/yN8fqa0u) –

2

可以的IsEnabledFlipView的屬性設置

希望得到這個幫助!

+1

這將禁用flipview的內容,我只是想禁用其導航,但允許用戶與其內容進行交互。 – Max

+0

你嘗試把下面的代碼以禁用flipview的ScrollViewer中: ScrollViewer.Horizo​​ntalScrollBarVisibility = 「已禁用」 ScrollViewer.Horizo​​ntalScrollMode = 「已禁用」 ScrollViewer.VerticalScrollBarVisibility = 「已禁用」 ScrollViewer.VerticalScrollMode = 「已禁用」 –