3

以下に示すように、xamlページにデータテンプレートを使用したスタイルがあります。

<

    Style x:Name="mytemplate" x:Key="mytemplate"  xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
                                TargetType="dataprimitives:DataGridColumnHeader">
                <Setter Property="ContentTemplate" >
                    <Setter.Value>
                        <DataTemplate>
                            <StackPanel Background="Aqua" Height="{Binding this.DataGridColumnHeader.Height}" Width="{Binding this.DataGridColumnHeaderWidth}" >
       <TextBlock Text="{Binding}"   HorizontalAlignment="Center" FontWeight="Black" ></TextBlock>
                                 <TextBox x:Name="{Binding}" Padding="0,-1,0,0"  HorizontalAlignment="Stretch" Width="100" Height="20" KeyDown="txtfilterBox_KeyDown" LostFocus="txtfilterBox_LostFocus" />
                            </StackPanel>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

このスタイルは、Silverlight datgrid 列ヘッダー スタイルに適用されます。テンプレート内のスタックパネルを Silverlight datgrid 列ヘッダーの高さと幅と同じにしたいですか? では、どのようにそれを行うことができますか?

それ以外の場合、データグリッドの列ヘッダーのスペース全体を埋めるためにコンテンツ テンプレートを引き伸ばす方法

4

1 に答える 1

2

StackPanel の水平方向および垂直方向の配置プロパティをストレッチに設定してみましたか? 親コンテナーの Width および Height プロパティにバインドする必要はまったくありません。

StackPanel をストレッチするように設定しても機能しない場合は、スタック パネルを Border でラップするだけでゴールデンになります。以下のコードを参照してください。

<Style x:Name="mytemplate" x:Key="mytemplate"  xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
                                    TargetType="dataprimitives:DataGridColumnHeader">
                    <Setter Property="ContentTemplate" >
                        <Setter.Value>
                            <DataTemplate>
                    <Border Background="Aqua" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
                                    <StackPanel>
                          <TextBlock Text="{Binding}"   HorizontalAlignment="Center" FontWeight="Black" ></TextBlock>
                                      <TextBox x:Name="{Binding}" Padding="0,-1,0,0"  HorizontalAlignment="Stretch" Width="100" Height="20" KeyDown="txtfilterBox_KeyDown" LostFocus="txtfilterBox_LostFocus" />
                                    </StackPanel>
                    </Border>
                            </DataTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
于 2011-12-07T16:09:35.250 に答える