Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / IsFocused не работает. Как заставить? / 6 сообщений из 6, страница 1 из 1
11.12.2017, 01:21
    #39567449
хорошо я согласен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IsFocused не работает. Как заставить?
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<Style TargetType="{x:Type DataGrid}">
    <Setter Property="CanUserAddRows" Value="false" />
    <Setter Property="Focusable" Value="true" />
    <Style.Triggers>
        <Trigger Property="IsFocused" Value="true">
            <Setter Property="CanUserAddRows" Value="true" />
        </Trigger>
    </Style.Triggers>
</Style>


Вот, надо мне сделать так, чтобы если пользователь ткнул по таблице и работает с ней, добавлялась бы пустая строка для добавления новой записи. А если фокус убрал, то и строка убиралась бы.
IsFocused - не работает.
IsMouseOver (ради эксперимента, не более) - работает.

Что, собственно, я тут творюУ меня в каждой ячейке столбца огромной таблицы DataGrid лежит по маленькой табличке DataGrid. Там от 1 до 3 строк. И если каждая такая табличка будет содержать пустую последнюю строку, то это сильно раздует суммарную высоту основной таблицы. Вот и думаю, как сделать так, что:
Если табличка в фокусе ИЛИ в табличке начали заполнять новую (последнюю) строку, то CanUserAddRows=true иначе CanUserAddRows=false
...
Рейтинг: 0 / 0
11.12.2017, 05:45
    #39567462
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IsFocused не работает. Как заставить?
хорошо я согласен,

Информация к размышлению:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
<Grid>
  <Grid.RowDefinitions>
    <RowDefinition />
    <RowDefinition />
  </Grid.RowDefinitions>
  <Grid.Resources>
    <Style TargetType="{x:Type DataGrid}">
      <Setter Property="Background" Value="Aqua" />
      <Style.Triggers>
        <Trigger Property="IsFocused" Value="True">
          <Setter Property="Background" Value="LightSlateGray" />
        </Trigger>
        <Trigger Property="IsKeyboardFocusWithin" Value="True">
          <Setter Property="Background" Value="Red" />
        </Trigger>
      </Style.Triggers>
    </Style>
    <Style TargetType="{x:Type DataGridCell}">
      <Style.Triggers>
        <Trigger Property="IsFocused" Value="True">
          <Setter Property="Background" Value="Yellow" />
          <Setter Property="Foreground" Value="Black" />
        </Trigger>
      </Style.Triggers>
    </Style>
    <Style TargetType="{x:Type DataGridRow}">
      <Style.Triggers>
        <Trigger Property="IsFocused" Value="True">
          <Setter Property="Background" Value="Green" />
        </Trigger>
        <Trigger Property="IsKeyboardFocusWithin" Value="True">
	  <Setter Property="Background" Value="DarkMagenta" />
        </Trigger>
      </Style.Triggers>
    </Style>
  </Grid.Resources>
  <TextBox
    VerticalAlignment="Center"
    Margin="10" />
  <DataGrid
    Grid.Row="1"
    IsReadOnly="True"
    AutoGenerateColumns="False"
    ItemsSource="{Binding}">
    <DataGrid.Columns>
      <DataGridTextColumn
        Header="Text"
        Binding="{Binding}" />
    </DataGrid.Columns>
  </DataGrid>
</Grid>


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public partial class MainWindow
{
  public MainWindow()
  {
    InitializeComponent();
    DataContext = Items;
  }

  public ObservableCollection<string> Items { get; }
    = new ObservableCollection<string>(new[] { "Foo", "Bar", "Zot" });
}


(TextBox в разметке - чтобы можно было посмотреть, куда уходит фокус при перемещении по нажатию Tab).
...
Рейтинг: 0 / 0
11.12.2017, 11:08
    #39567551
хорошо я согласен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IsFocused не работает. Как заставить?
хм.
Я просто делаю вывод, что IsFocused для некоторых элементов управления почему-то не работает. Всячески щёлкая, я так и не добился того, чтобы у меня строка окрасилась в зелёный, а таблица в LightSlateGray.
...
Рейтинг: 0 / 0
11.12.2017, 11:08
    #39567552
хорошо я согласен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IsFocused не работает. Как заставить?
и вместо него нужно использовать IsKeyboardFocusWithin
...
Рейтинг: 0 / 0
11.12.2017, 12:03
    #39567586
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IsFocused не работает. Как заставить?
для начала стоить проверить FocusScope
...
Рейтинг: 0 / 0
11.12.2017, 12:31
    #39567604
хорошо я согласен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IsFocused не работает. Как заставить?
Roman Mejtesдля начала стоить проверить FocusScope
а, вот оно что.
Роман, Сон, спасибо)))
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / IsFocused не работает. Как заставить? / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]