0

DockPanel 内に表示したい情報がいくつかありますが、DockPanel の行から外れて、一部のテキストが次のように途切れてしまいました。

ここに画像の説明を入力

コードビハインドでそれらを設定します。コンテンツ全体を切り取ることなく内部に配置できるようにドックパネルの配置を設定するにはどうすればよいですか。

Xamlコードは次のとおりです。

    <Grid Background="#FF5EC136">

    <DockPanel Height="894" HorizontalAlignment="Stretch" Margin="365,135,0,0" Name="dockPanel1" VerticalAlignment="Top" Width="1174" />
</Grid>

私のxaml.csが役立つかどうかわからないので、ここに投稿するだけです。ほとんどのコードは無関係です:

      private void PopulateQuestion(int activityID, int taskID)
    {
      IList<Model.questionhint> lstQuestionHints = qh.GetRecords(taskID, activityID);

        StackPanel sp = new StackPanel();

        foreach (Model.questionhint qhm in lstQuestionHints)
        {
            StackPanel sp1 = new StackPanel() { Orientation = Orientation.Horizontal };
            TextBlock tb = new TextBlock();
            tb.Text = qhm.QuestionContent;
            tb.FontWeight = FontWeights.Bold;
            tb.FontSize = 24;
            sp1.Children.Add(tb);

            TextBox tbox = new TextBox();
            tbox.Width = 100;
            tbox.FontSize = 24;
            tbox.FontWeight = FontWeights.Bold;

            if (qhm.Option1.Trim().Length > 0 &&
               qhm.Option2.Trim().Length > 0)
            {

            sp1.Children.Add(tbox);

            }
           Label btn1 = new Label();
            Label btn2 = new Label();
            if (qhm.Option1.Trim().Length > 0)
            {

                btn1.Content = qhm.Option1;
                btn1.Width = 110;
                btn1.FontSize = 24;
                btn1.FontWeight = FontWeights.Bold;
                btn1.Foreground = (SolidColorBrush)new BrushConverter().ConvertFromString("#FFE22B2B"); 
                sp1.Children.Add(btn1);                                     
                btn1.MouseLeftButtonDown += (source, e) =>
                {
                    btn2.Foreground = (SolidColorBrush)new BrushConverter().ConvertFromString("#FFE22B2B"); 
                    btn1.Foreground = (SolidColorBrush)new BrushConverter().ConvertFromString("#FFF0FA08"); 
                    tbox.Text = btn1.Content.ToString();
                };

            }
            if (qhm.Option2.Trim().Length > 0)
            {

                btn2.Content = qhm.Option2;
                btn2.Width = 110;
                btn2.FontSize = 24;
                btn2.FontWeight = FontWeights.Bold;
                btn2.Foreground = (SolidColorBrush)new BrushConverter().ConvertFromString("#FFE22B2B");
                sp1.Children.Add(btn2);
                btn2.MouseLeftButtonDown += (source, e) =>
                {
                    btn1.Foreground = (SolidColorBrush)new BrushConverter().ConvertFromString("#FFE22B2B"); 
                    btn2.Foreground = (SolidColorBrush)new BrushConverter().ConvertFromString("#FFF0FA08"); 
                    tbox.Text =btn2.Content.ToString();
                };
            }

            sp.Children.Add(sp1);
        }
        dockPanel1.Children.Add(sp);
4

1 に答える 1

1

StackPanel の代わりに WrapPanel を使用します。コードの次の行を置き換えます

StackPanel sp1 = new StackPanel() { Orientation = Orientation.Horizontal };

WrapPanel wp = new WrapPanel();
于 2013-07-12T03:18:08.717 に答える