簡體   English   中英

LoopingSelector沒有顯示出來

[英]LoopingSelector doesn't show up

我正在使用本教程中所示的LoopingSelectorWP7-LoopingSelector-in-depth - Part1 我剛剛復制了他們的XAML和C#代碼。 我修改了XAML以適應我的布局,但它仍然類似於他們的教程。

這是我放置LoopingSelector的XAML代碼:

<Grid>
    <StackPanel Grid.Row="2">
        <TextBlock Text="Countdown Time" HorizontalAlignment="Center"
                   FontSize="28" />
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
            <toolkitPrimitives:LoopingSelector x:Name="hSelector"
                               ItemMargin="2,3,3,2" ItemSize="100,100" />
            <TextBlock Text=":" VerticalAlignment="Center" FontSize="64"
                       FontFamily="{StaticResource Digital7}"/>
            <toolkitPrimitives:LoopingSelector x:Name="mSelector"
                               ItemMargin="2,3,3,2" ItemSize="100,100" />
            <TextBlock Text="'" VerticalAlignment="Center" FontSize="64"
                       FontFamily="{StaticResource Digital7}"/>
            <toolkitPrimitives:LoopingSelector x:Name="sSelector"
                               ItemMargin="2,3,3,2" ItemSize="100,100" />
        </StackPanel>
    </StackPanel>
</Grid>

其中toolkitPrimitives定義為:

xmlns:toolkitPrimitives="clr-namespace:Microsoft.Phone.Controls.Primitives;assem‌​bly=Microsoft.Phone.Controls.Toolkit"

這是我在后面的代碼中所做的:

this.hSelector.DataSource = new IntLoopingDataSource()
{
    MinValue = 0,
    MaxValue = 23,
    SelectedItem = 0
};
this.mSelector.DataSource = new IntLoopingDataSource()
{
    MinValue = 0,
    MaxValue = 59,
    SelectedItem = 1
};
this.sSelector.DataSource = new IntLoopingDataSource()
{
    MinValue = 0,
    MaxValue = 59,
    SelectedItem = 0
};

我本來會使用TimePicker但是它不支持選擇Second 我需要選擇小時,分鍾秒。

通過一些實驗,我發現,由於一些未知的原因,LoopingSelector根本不喜歡StackPanel。 如果你想擁有許多LoopingSelector,實現它的最好方法是制作一個網格。

這是我修改過的XAML:

<Grid>
<StackPanel Grid.Row="2">
                        <TextBlock Text="Countdown Time" HorizontalAlignment="Center" FontSize="28" />
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="1*"/>
                                <ColumnDefinition Width="0.1*"/>
                                <ColumnDefinition Width="1*"/>
                                <ColumnDefinition Width="0.1*"/>
                                <ColumnDefinition Width="1*"/>
                            </Grid.ColumnDefinitions>
                            <toolkitPrimitives:LoopingSelector Grid.Column="0" x:Name="hSelector" ItemMargin="2,3,3,2" ItemSize="100,100" Height="300"/>
                            <TextBlock Grid.Column="1" Text=":" VerticalAlignment="Center" FontSize="64" FontFamily="{StaticResource Digital7}"/>
                            <toolkitPrimitives:LoopingSelector Grid.Column="2" x:Name="mSelector" ItemMargin="2,3,3,2" ItemSize="100,100" Height="300"/>
                            <TextBlock Grid.Column="3" Text="'" VerticalAlignment="Center" FontSize="64" FontFamily="{StaticResource Digital7}" />
                            <toolkitPrimitives:LoopingSelector Grid.Column="4" x:Name="sSelector" ItemMargin="2,3,3,2" ItemSize="100,100" Height="300"/>
                        </Grid>
                    </StackPanel>
</Grid>

如果我錯了,請隨意糾正我。

ps對於熟悉StackOverflow的人,請幫我格式化我的帖子中的XAML,因為我不知道如何正確格式化它。

您需要在循環選擇器上設置Width and HeightItemSize 此控件不能很好地處理沒有絕對大小的情況。 這就是它在StackPanel中不起作用的原因。

StackPanels提供無限的寬度和高度。

通常控件應該處理這些情況,但作為一個原始控件,他們假設這些值將被設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM