Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение Style ScrollBar-а в DataGrid-е 
:(
    Опции темы
Человек01
Дата 15.3.2009, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 20.2.2009
Где: Абакан, респ. Хак асия, Россия

Репутация: 2
Всего: 2



Диспозиция:
Я делаю определение Style для всех ScrollBar в файле scrollBar.xaml
Код

<ResourceDictionary .... >
    ......
  <Style x:Key="scrollbar001" TargetType="{x:Type ScrollBar}">
    <Setter Property="SnapsToDevicePixels" Value="True"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Style.Triggers>
      <Trigger Property="Orientation" Value="Horizontal">
        <Setter Property="Width" Value="Auto"/>
        <Setter Property="Height" Value="18" />
        <Setter Property="Template" Value="{StaticResource HorizontalScrollBar}" />
      </Trigger>
      <Trigger Property="Orientation" Value="Vertical">
        <Setter Property="Width" Value="18"/>
        <Setter Property="Height" Value="Auto" />
        <Setter Property="Template" Value="{StaticResource VerticalScrollBar}" />
      </Trigger>
    </Style.Triggers>
  </Style>
</ResourceDictionary>

Для того чтобы это определение сработало требуется в дизайне UserControl.xaml добавить всего лишь:
Код

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="scrollBar.xaml" />
  </ResourceDictionary.MergedDictionaries>

И все ScrollBarы получат соответствующий Style

Вопрос: Но вот как этот стиль применить из кода? И только к ScrollBarам?
Например у меня есть public class ExDataGrid : DataGrid, как изменить стили его ScrollBarов, оставив все остальные настройки без изменений?
Код

public class ExDataGrid : DataGrid
{
        public ExDataGrid()
              : base()
        { 
            this.Loaded += new RoutedEventHandler(ElDataGrid_Loaded);
        }

        void ElDataGrid_Loaded(object sender, RoutedEventArgs e)
        {
           /*Что тут надо сделать?*/
        }
}



PM MAIL ICQ   Вверх
Человек01
Дата 15.3.2009, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 20.2.2009
Где: Абакан, респ. Хак асия, Россия

Репутация: 2
Всего: 2



Так и не нашел как это можно сделать  smile , в результате сделал так:
Создал новый контрол поместил туда DataGrid туда же поместил привязку scrollBar.xaml которая автоматом выставила Style для ScrollBarов DataGridа
Код

<UserControl x:Class="DGTV.ElDataGrid"
              x:Name="supername"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:wpf="clr-namespace:Microsoft.Windows.Controls;assembly=WpfToolkit"
    >
    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="scrollBar.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </UserControl.Resources>
    <Grid>
        <wpf:DataGrid Name="datagrid1" DataContext="{Binding Path=DataContext, ElementName=supername}" ItemsSource="{Binding}"></wpf:DataGrid>
    </Grid>
</UserControl>


Код

namespace DGTV
{
    /// <summary>
    /// Interaction logic for ElDataGrid.xaml
    /// </summary>
    public partial class ElDataGrid : UserControl
    {
        public ElDataGrid()
        {
            InitializeComponent();
        }
        public Microsoft.Windows.Controls.DataGrid DataGrid
        {
            get { return datagrid1; }
            set { datagrid1 = value; }
        }

    }
}

Топорно, но работает  smile 

Это сообщение отредактировал(а) Человек01 - 15.3.2009, 21:09
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0630 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.