стилизация таблицы данных для соответствия заголовку столбца сетки данных silverlight - PullRequest
3 голосов
/ 03 ноября 2010

У меня есть стиль с таблицей данных на странице 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. Теперь я хочу, чтобы панель стека внутри шаблона была такой же, как высота и ширина заголовок столбца сетки данных Silverlight? так как это можно сделать?

иначе, как растянуть шаблон содержимого, чтобы заполнить все пространство заголовка столбца таблицы данных

1 Ответ

2 голосов
/ 07 декабря 2011

Вы пытались установить свойства горизонтального и вертикального выравнивания StackPanel для растяжения?Вам вообще не нужно связываться со свойствами Width и Height родительского контейнера.

Если установка StackPanel на растяжение не работает, просто оберните панель стека в рамку, и вы получите золотой цвет.Смотрите код ниже:

<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>
...