5

में कुछ पिवोट पेजों पर एप्लिकेशन बार को कैसे छिपा सकता हूं, मुझे लगता है कि इसका एक छोटा सा जवाब है लेकिन मुझे यह नहीं मिल रहा है। असल में मेरे पास एक विंडोज फोन 8 ऐप है जिसमें पिवोट और एप्लिकेशन बार शामिल है। जब मैं पिवोट में एक निश्चित पृष्ठ पर नेविगेट किया जाता है तो मैं एप्लिकेशन बार को छिपाना चाहता हूं।मैं विंडोज फोन 8

मैं क्या Pivot_SelectionChanged घटना में निम्न कोड जोड़ने था:

AppBar.IsVisible = !((((Pivot)sender).SelectedIndex) == 2); 

तो जब 3 पेज दिखाया गया है, आवेदन बार छिपा हुआ है, और जब 3 पेज से दूर नेविगेट किया है दिखाया जाना चाहिए । हालांकि, जब मैं ऐप चलाता हूं, तो मुझे ऐपबार के लिए NullReference त्रुटि मिलती है।

मैं Dispatcher.BeginInvoke अंदर डालने की कोशिश की:

Dispatcher.BeginInvoke(() => {  
     AppBar.IsVisible = !((((Pivot)sender).SelectedIndex) == 2); 
}); 

यह पहले कुछ स्वाइप के लिए काम करता है, लेकिन पर तीसरे पृष्ठ पर एक NullReference अपवाद का कारण बनता है।

क्या मैं पूरी तरह से गलत ट्रैक पर हूं या ऐसा करने का कोई आसान तरीका है?

+0

http://stackoverflow.com/questions/6007721/is-it-possible-to-show-application-bar-for-one-pivot-item-only – Vovich

+0

@Vovich आह हाँ मैंने देखा कि पोस्ट । हालांकि, मुझे एहसास नहीं हुआ कि एप्लिकेशनबार उपयोगकर्ता द्वारा परिभाषित नाम नहीं है। और मैंने यह भी सोचा कि WP8 में ऐसा करने का एक और (और अलग) तरीका है। लेकिन यह इंगित करने के लिए धन्यवाद! – Devmonster

उत्तर

9

, ApplicationBar के नाम आपके द्वारा दिए गए का उपयोग न करें बजाय पेज के ApplicationBar संपत्ति का उपयोग करें: साथ AppBar

ApplicationBar.IsVisible = !((((Pivot)sender).SelectedIndex) == 2); 

यानी बदलें ApplicationBar

+0

उतना आसान है जितना। धन्यवाद! – Devmonster

1

आप बना सकते हैं आईडी का उपयोग कर इस तरह पिवोट पेज के कुछ पिवट आइटम के लिए एप्लिकेशन बार। अगर आईडी = 0 है, तो यह स्वचालित रूप से पिवोट पेज 0 ले जाएगा। ऐपबार का उपयोग करना भूल गया। आपपा सकते हैं 0। इसका उपयोग करके, आप चुन सकते हैं कि सभी एपबार को पूरे पिवट पेजों में और चुनिंदा पिवट पृष्ठों में होना चाहिए।

<phone:Pivot> 
    <i:Interaction.Triggers> 
     <appBarUtils:SelectedPivotItemChangedTrigger> 
      <appBarUtils:SelectedPivotItemChangedTrigger.SelectionMappings> 
       <appBarUtils:SelectionMapping SourceIndex="0" TargetIndex="0"/> 
      </appBarUtils:SelectedPivotItemChangedTrigger.SelectionMappings> 

      <appBarUtils:SwitchAppBarAction> 
       <appBarUtils:AppBar Id="0" BackgroundColor="{StaticResource AppBarBg}" ForegroundColor="{StaticResource Foreground}"> 
        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.home.png" Text="home" Command="{Binding HomeNavigationCommand}"/> 
       </appBarUtils:AppBar> 

       <appBarUtils:AppBar Id="1" BackgroundColor="{StaticResource AppBarBg}" ForegroundColor="{StaticResource Foreground}"> 
        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.home.png" Text="home" Command="{Binding HomeNavigationCommand}"/> 
       </appBarUtils:AppBar> 

       <appBarUtils:AppBar Id="2" BackgroundColor="{StaticResource AppBarBg}" ForegroundColor="{StaticResource Foreground}"> 
        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.home.png" Text="home" Command="{Binding HomeNavigationCommand}"/> 
        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.money.png" Text="collection" Command="{Binding CollectionPageCommand}"/> 
        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.check.rest.png" Text="ok" Command="{Binding OrderConfirmationButtonCommand}"/> 
       </appBarUtils:AppBar> 

       <appBarUtils:AppBar Id="3" BackgroundColor="{StaticResource AppBarBg}" ForegroundColor="{StaticResource Foreground}"> 
        <appBarUtils:AppBarButton x:Name="ConfirmationAppBarButton" IconUri="/Assets\Images\appbar.cancel.rest.png" Text="cancel" Command="{Binding OrderCancelButtonCommand}"/> 
        <appBarUtils:AppBarButton IconUri="/Assets\Images\appbar.check.rest.png" Text="ok" Command="{Binding OrderConfirmationButtonCommand}" IsEnabled="{Binding Model.EnableCheck,Mode=TwoWay}" /> 
       </appBarUtils:AppBar> 

      </appBarUtils:SwitchAppBarAction> 
     </appBarUtils:SelectedPivotItemChangedTrigger> 
    </i:Interaction.Triggers> 
</phone:Pivot> 
0

यह कैलिबर्न.मिक्रो फ्रेमवर्क के लिए वास्तव में एक अद्भुत ऐप बार एक्सटेंशन है। यह आपको ViewModel से ऐप बार दृश्यता और संरचना को संभालने देगा, न कि कोड-बैक।

https://github.com/kamranayub/CaliburnBindableAppBar

आप इसे करने की कोशिश नहीं की है, तो मैं दृढ़ता से विंडोज फोन 8 यह वास्तव में एक बहुत अच्छा काम WP8 विकास को सरल बनाने के लिए करता है Caliburn.micro पर एक नज़र डालने की सिफारिश करेंगे।

संबंधित मुद्दे