powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / IsFocused не работает. Как заставить?
6 сообщений из 6, страница 1 из 1
IsFocused не работает. Как заставить?
    #39567449
хорошо я согласен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
IsFocused не работает. Как заставить?
    #39567462
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хорошо я согласен,

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


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