0

wp7アプリケーションでコントロールを水平方向にラップしたいと思います。そのため、Silverlightツールキットのラップパネルを使用しています。最初の行までは正常に機能していますが、最初の行の後、2番目のコントロールは2番目の行に移動します。

http://s13.postimage.org/8oxnxxcef/First.png

最初の行の後、テキストボックスコントロールが下に移動しますが、これはラップパネルの場合とは異なり、リストボックスアイテムに正しく移動する必要があります。

ここに画像の説明を入力してください

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,0,0">
            <StackPanel>
                <toolkit:WrapPanel Orientation="Horizontal">
                <ListBox Name="lstDemo" SelectionChanged="lstDemo_SelectionChanged">
                <ListBox.ItemsPanel>
                    <ItemsPanelTemplate>
                        <toolkit:WrapPanel>
                        </toolkit:WrapPanel>
                    </ItemsPanelTemplate>
                </ListBox.ItemsPanel>
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}" Margin="5,0,0,0"></TextBlock>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
                    <TextBox Name="txtHello" Margin="5,0,0,0" FontSize="20" />
            </toolkit:WrapPanel>

            </StackPanel>
        </Grid>

これを修正する方法を教えてください。2番目のコントロールは、ラップパネル内のリストボックスアイテムとコントロールが水平方向に折り返されているため、常にリストボックスアイテムの後に表示されます。

4

3 に答える 3

0

ラップパネルは想定どおりに機能しています。ラップパネルは子を取得し、それらを並べて表示します。したがって、この例では、外側のパネルに2つの子[ListBox][TextBox]が並んで表示されています。ListBox.ItemsPanelをWrapPanelとして使用しているため、左に縮小しようとします。リストボックスに折り返すのに十分なアイテムがある場合、リストボックスの幅はコントロールの幅になります。そのため、WrapPanelは引き続き子を並べて表示しますが、最初の子(ListBox)の幅が大きくなりました。

したがって、最初の例は次のようになります(上記の例を並べて使用_ [ListBox width:300] [TextBlock] 2番目の例:[ListBox width:480] [TextBlock]

申し訳ありませんが、あなたが求めていることを簡単に*行う方法はありません。

*私はいつもxamlで何でも可能だと言っています。カスタムコントロールを作成する場合は、これを実行できます。

于 2012-05-21T05:32:47.227 に答える
0

質問を誤解しているかもしれませんが、なぜStackPanelを使用できないのですか?

StackPanelを使用して、そのOrientationプロパティをHorizo​​ntalに設定するだけです。WrapPanelは、あなたがやろうとしていることに適していません。

于 2012-05-22T07:29:46.407 に答える
0

コントロールリストを含む要素でHorizo​​ntalAlignment="Right"を使用します。何かのようなもの

<Grid HorizontalAlignment="Right">
    <StackPanel>...items...</StackPanel>
</Grid>

トリックを行う可能性があります。注意してください、しかし、私はこれを試していません。

于 2012-11-06T10:54:57.663 に答える