AKhoo
AKhoo

Reputation: 33

How to restrict a xaml flipview to flipping in a single direction only?

I'm presently using a Windows.UI.Xaml.Controls.FlipView class to display a series of images in a Windows 8 Metro app. In the normal use case, the user can flip back and forth between the images, so a FlipView works wonderfully.

However, there is a specific scenario where the user enters a mode where they can only flip the images forward, i.e. they can't flip backward, until exiting this mode. I've been trying to figure out if there's a simple way to disable flipping backward on a FlipView, but have not found an obvious solution.

Is there a good way to do this using a standard FlipView, or do I have to switch to a different control, or even write a custom one?

Upvotes: 2

Views: 635

Answers (1)

Jerry Nixon
Jerry Nixon

Reputation: 31813

What a strange request.

Hopefully, this doesn't seem too simple. It gets the job done in 3 lines!

Here's how (just remove them after they view them):

private void FlipView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var _ItemsCollection = (sender as FlipView).Items;
    foreach (var item in e.RemovedItems)
        _ItemsCollection.Remove(item);
}

<Grid Background="Black">
    <FlipView FontSize="100" SelectionChanged="FlipView_SelectionChanged">
        <x:String>0</x:String>
        <x:String>1</x:String>
        <x:String>2</x:String>
        <x:String>3</x:String>
        <x:String>4</x:String>
        <x:String>5</x:String>
        <x:String>6</x:String>
        <x:String>7</x:String>
        <x:String>8</x:String>
        <x:String>9</x:String>
        <x:String>10</x:String>
        <x:String>11</x:String>
        <x:String>12</x:String>
        <x:String>13</x:String>
        <x:String>14</x:String>
        <x:String>15</x:String>
        <x:String>16</x:String>
        <x:String>17</x:String>
        <x:String>18</x:String>
        <x:String>19</x:String>
        <x:String>20</x:String>
        <x:String>21</x:String>
        <x:String>22</x:String>
        <x:String>23</x:String>
        <x:String>24</x:String>
        <x:String>25</x:String>
        <x:String>26</x:String>
        <x:String>27</x:String>
        <x:String>28</x:String>
        <x:String>29</x:String>
    </FlipView>
</Grid>

Best of luck!

Upvotes: 1

Related Questions