windows - Deaktiver pivot flick til WP7

Indlæg af Hanne Mølgaard Plasc

Problem



ser dette blogindlæg: http://mine.tuxfamily.org/?p=111, jeg forsøger at deaktivere pivot-flicket, når du blinker på en kontrol inde i pivoten. [3]


Jeg har trykt den foreslåede løsning med IsHitTestVisible, men det lader til, at applikationen låses, når den indstilles til falsk.


For at reproducere problemet skal du oprette en wp7 grundlæggende applikation. Brug denne xaml:


<Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid x:Name="ContentPanel" Margin="12,0,12,0">
            <controls:Pivot Name="pivotCtrl" Grid.Row="1">
                <controls:Pivot.HeaderTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Value1}"/>
                    </DataTemplate>
                </controls:Pivot.HeaderTemplate>
                <controls:Pivot.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="40"/>
                                <RowDefinition Height="40"/>
                                <RowDefinition Height="*"/>
                            </Grid.RowDefinitions>

                            <TextBlock Grid.Row="0" Height="38" HorizontalAlignment="Left" VerticalAlignment="Top" Width="200" Text="{Binding Value1}" />
                            <TextBlock Grid.Row="1" Height="38" HorizontalAlignment="Left" VerticalAlignment="Top" Width="200" Text="{Binding Value2}" />
                            <Canvas Grid.Row="2" Width="400" Height="300" Background="Yellow" MouseLeftButtonUp="Canvas\_MouseLeftButtonUp" MouseLeftButtonDown="Canvas\_MouseLeftButtonDown" />
                        </Grid>
                    </DataTemplate>
                </controls:Pivot.ItemTemplate>
            </controls:Pivot>
        </Grid>
    </Grid>


med denne kode behing:


public partial class MainPage : PhoneApplicationPage
{
    // Constructor
    public MainPage()
    {
        InitializeComponent();

        List<Element> elements = new List<Element>();
        for (int i = 0 ; i < 10 ; i++)
            elements.Add(new Element { Value1 = "Value - " + i, Value2 = "Something - " + i});

        pivotCtrl.ItemsSource = elements;
    }

    private void Canvas\_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
        Debug.WriteLine("On");
        pivotCtrl.IsHitTestVisible = true;
    }

    private void Canvas\_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        Debug.WriteLine("Off");
        pivotCtrl.IsHitTestVisible = false;
    }
}

public class Element
{
    public string Value1 { get; set; }
    public string Value2 { get; set; }
}


I debug-tilstand kan jeg se 'Off' -værdien, men aldrig 'On' -en.


Måske er der en anden løsning til dette.


Tak på forhånd for din hjælp.

Bedste reference


Denne løsning blev udgivet denne uge. Fungerer det bedre for dig?


Forhindring af pivot- eller panoramakontrollerne fra at rulle [4]