Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# WPF Варианты биндинга через RelativeSource https://www.cyberforum.ru/ wpf-silverlight/ thread2319581.html
Здравствуйте, пытаюсь разобраться с биндингом для вложенных контролов. Идея следующая: есть форма, на ней располагается UserControl, который в свою очередь будет содержать другие UserControl-ы. Я бы хотел в верхнем контроле создавать источники данных для дочерних контролов следующим образом: public partial class CtrlLayoutPages : UserControl { public CalcPartViewModel...
C# WPF Silverlight как открыть форму
День добрый! как открыть форму? пишу приложение silverlight для работы вне браузера, есть основная форма MainPage, добавляю "Пользовательский элемент управления silverlight" и хочу его открыть из формы MainPage пишу как в winforms: SilverlightControl1 Open_Windows = new SilverlightControl1(); Open_Windows.Show(); но так не работает:cry:
C# WPF Масштабируемость(адаптивность) элементов Здравствуйте! Я создаю по кнопке новую вкладку tabcontrol в которой вверху 3 textBox, а ниже texteditor, находящийся в listBox. Но эти элементы абсолютно не адаптивны. Так как я жестко задал высоту и ширину, но если их убрать, то размер элементов слишком мал, подскажите как быть? var textBox1 = new TextBox(); var textBox2 = new TextBox(); var textBox3 = new... https://www.cyberforum.ru/ wpf-silverlight/ thread2319408.html C# WPF Положение окна между запусками https://www.cyberforum.ru/ wpf-silverlight/ thread2319403.html
Подскажите, как сохранить положение окна между запусками?? Как сохранить размеры(высота и ширина) я разобрался. Так же я сохранил состояние окна Settings.Default.WindowsLocation = this.WindowState; WindowState = Settings.Default.WindowsLocation; Но данный код сохраняет только открыто окно на весь экран или нет. А вот чтоб если я прижал окно wpf к верхнему левому углу монитора,...
C# WPF Значение связанных свойств во время разработки
Связанные свойства в режиме разработки установлены в null. Из-за этого работать в конструкторе неудобно - искажается компоновка. Существует ли какая-то возможность присвоить им некие значения действующие в режиме разработки? XAML <Grid> <Grid.Resources> <Style TargetType="Border"> <Setter Property="BorderBrush" Value="Gray"/> <Setter...
C# WPF Как показать пользователю, что программа не зависла? https://www.cyberforum.ru/ wpf-silverlight/ thread2319143.html
Реализую один из методов оптимизации. Соответственно, время и количество итераций до нахождения оптимального решения неизвестно до самого завершения всех вычислений. Так вот как можно показать пользователю, что программа не зависла, а всё еще ищет решение?
C# WPF Выполняется привязка данных к элементу управления. (Wpf и local db) https://www.cyberforum.ru/ wpf-silverlight/ thread2319061.html
Создал WPF приложение. Создал базу данных. В ней таблицу. После чего заполнил вручную таблицу данными. Далее вернувшись в конструктор MainWidow.xaml в источниках данных подключил базу и выбрал таблицу, но при переносе таблицы на форму (окно), не важно будь-то выбрана DataGrid или Список или Сведения, пишет это: Выполняется привязка данных к элементу управления. Не удается добавить элемент...
Анимация не дает label перемещаться C# WPF
Есть label, который можно перемещать мышью. Есть анимация Label, которая срабатывает при MouseEnter. Суть анимации в том что она перемещает Label по Canvas.Top - тоесть с начальной позиции(981) она передвигает label на Canvas.Top(810). После этого при попытке переместить мышью label не получается(выше 810 не поднимается, а по x двигается хорошо) Вот код анимации: DoubleAnimation animation = new...
C# WPF Работа ProgressBar в отдельном потоке Привет. Подскажите, как заполнять и обновлять progressBar в отдельном потоке в процессе вычислений? У меня вычисления происходят в отдельном классе. Конструктор класса вычислений: public GoldenSearch(MainWindow main) { InitializeComponent(); _main = main; string x1 = _main.goldenSearchX1ResTB.Text; string YF1 =... https://www.cyberforum.ru/ wpf-silverlight/ thread2318880.html C# WPF Обращение к методам класса File https://www.cyberforum.ru/ wpf-silverlight/ thread2318865.html
Здравствуйте! Я новичок в WPF. Объясните дураку, почему, при обращении к методам класса File в проекте библиотеки пользовательских классов компилятор выдаёт ошибку (например при обращении к File.Exists): "Имя 'File.Exists' не существует в данном контексте" using System.IO есть Библиотека mscorlib.dll подключена по умолчанию. ПОМОГИТЕ КТО МОЖЕТ!!!!!!!!!
Expression Blend - Условия сравнения триггеров C# WPF
Ищу возможность осуществить в XAML срабатывание триггеров по условию "Больше","Меньше" и т.п. Накопал, вроде, что для этого надо использовать параметр триггера Comparison. Пример на https://social.msdn.microsoft.com/Forums/vstudio/en-US/db95a41f-7d6a-4a57-be96-eb12cb6604ab/datatriggers-with-comparison?forum=wpf Для этого надо подключить Expression Blend и, соответствующие, пространства имён ...
879 / 558 / 291
Регистрация: 21.11.2012
Сообщений: 1,553
12.09.2018, 13:55 0

Текст подсказка в ячейке DataGrid - C# WPF - Ответ 12894610

12.09.2018, 13:55. Показов 2194. Ответов 19
Метки (Все метки)

Ответ

я бы сделал так.. для начала нужно сделать свойство, которое бы отвечало за отображение текста "введите что-то:". Есть 2 способа. Первый сделать кастомный текстбокс, второй с помощью attachedproperty. я покажу решиние со вторым..
для начала создадим такое свойство:

Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    public static class AttachesProperties
    {
        public static string GetDefaultText(DependencyObject obj)
        {
            return (string)obj.GetValue(DefaultTextProperty);
        }
 
        public static void SetDefaultText(DependencyObject obj, string value)
        {
            obj.SetValue(DefaultTextProperty, value);
        }
 
        // Using a DependencyProperty as the backing store for DefaultText.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty DefaultTextProperty =
            DependencyProperty.RegisterAttached("DefaultText", typeof(string), typeof(AttachesProperties));
    }


теперь определим стиль для текстбокса. Отображением текста будет заниматься текстблок:

Кликните здесь для просмотра всего текста

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
52
53
54
55
56
57
<SolidColorBrush x:Key="TextBox.Static.Border" Color="#FFABAdB3"/>
        <SolidColorBrush x:Key="TextBox.MouseOver.Border" Color="#FF7EB4EA"/>
        <SolidColorBrush x:Key="TextBox.Focus.Border" Color="#FF569DE5"/>
        <Style x:Key="TextBoxStyle1" TargetType="{x:Type TextBox}">
            <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
            <Setter Property="BorderBrush" Value="{StaticResource TextBox.Static.Border}"/>
            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
            <Setter Property="HorizontalContentAlignment" Value="Left"/>
            <Setter Property="local:AttachesProperties.DefaultText" Value="Hallo, world!"></Setter>
            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
            <Setter Property="AllowDrop" Value="true"/>
            <Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/>
            <Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type TextBox}">
                        <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
                            <Grid>
                                <ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
                                <TextBlock Text="{Binding Path=(local:AttachesProperties.DefaultText), RelativeSource={RelativeSource AncestorType=TextBox, Mode=FindAncestor}}" Margin="2 2 0 0" Foreground="Silver" x:Name="tbDefaultText">
                                    <TextBlock.Visibility>
                                        <MultiBinding Converter="{StaticResource DefaultTextConverter}">
                                            <Binding Path="Text" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type TextBox}}"></Binding>
                                            <Binding Path="IsFocused" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type TextBox}}"></Binding>
                                            <Binding Path="(local:AttachesProperties.DefaultText)" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type TextBox}}"></Binding>
                                        </MultiBinding>
                                    </TextBlock.Visibility>
                                </TextBlock>
                            </Grid>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsEnabled" Value="false">
                                <Setter Property="Opacity" TargetName="border" Value="0.56"/>
                            </Trigger>
                            <Trigger Property="IsMouseOver" Value="true">
                                <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.MouseOver.Border}"/>
                            </Trigger>
                            <Trigger Property="IsKeyboardFocused" Value="true">
                                <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.Focus.Border}"/>
                                <Setter Property="Visibility" Value="Collapsed" TargetName="tbDefaultText"></Setter>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <MultiTrigger>
                    <MultiTrigger.Conditions>
                        <Condition Property="IsInactiveSelectionHighlightEnabled" Value="true"/>
                        <Condition Property="IsSelectionActive" Value="false"/>
                    </MultiTrigger.Conditions>
                    <Setter Property="SelectionBrush" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightBrushKey}}"/>
                </MultiTrigger>
            </Style.Triggers>
        </Style>


далее добавляем конвертер для отображения/скрытия текста
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class DefaultTextConverter : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            var text = values[0];
            var isFocused = (bool)values[1];
            var defaultText = values[2];
 
            if (isFocused) return Visibility.Collapsed;
            else if (defaultText == null) return Visibility.Collapsed;
            else if (text != null && !string.IsNullOrEmpty(text.ToString())) return Visibility.Collapsed;
            else return Visibility.Visible;
        }
 
        public object[] ConvertBack(object value, Type[] targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }



после того, как создали стиль для текстбокса, используем DataGridTemplateColumn:

Кликните здесь для просмотра всего текста

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<DataGrid>
   <DataGrid.Columns>
         <DataGridTemplateColumn Header="Name">
              <DataGridTemplateColumn.CellTemplate>
                 <DataTemplate><TextBlock Text="{Binding Name}"/></DataTemplate>
              </DataGridTemplateColumn.CellTemplate>
 
              <DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <TextBox Style="{StaticResource TextBoxStyle1}" Text="{Binding Name, Mode=TwoWay}" local:AttachesProperties.DefaultText="Введите имя:"></TextBox>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
         </DataGridTemplateColumn>
   </DataGrid.Columns>
</DataGrid>


далее при редактировании записи если в ячейке пусто, появится надпись "Введите имя:" пока не введешь что-то

Вернуться к обсуждению:
Текст подсказка в ячейке DataGrid C# WPF
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.09.2018, 13:55
Готовые ответы и решения:

Datagrid в ячейке Datagrid c корректным отображением границ
Задача поместить связанные данные (две таблицы Sql связаны по id ) в виде таблицы ячейки одной их...

WPF, DataGrid и многострочие в ячейке
Как ясно из вопроса: есть DataGrid и текст в ячейках. Как сделать перенос текста внутри его? Везде...

Два значения из БД в одной ячейке DataGrid
День добрый. Из БД берётся два значения цены из разных таблиц, надо что бы эти значения были...

Заполнение значения в определённой ячейке DataGrid
Добрый день, уважаемые форумчане! Не так давно стал изучать WPF. Возник один вопрос, который...

19
12.09.2018, 13:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2018, 13:55
Помогаю со студенческими работами здесь

Отображение картинки в ячейке DataGrid в зависимости от условия
Добрый день. На форме есть datagrid. Заполняю его из БД.Есть вычисляемый столбец. Если в этом...

Datagrid в WPF. Задать ячейке значение null
Привет! Ребят подскажите плз как мне удалить (не программно а просто тыкая мышкой и нажимая на...

Строковый тип отображается в ячейке DataGrid как "Коллекция"
Доброй ночи всем! public MilitaryAircraftEntities militaryAircraftOC = new...

Не помещается текст в ячейке в DataGridView
Привет всем ! Я новичок на форуме , поэтому сразу прошу прощения ежели что не так. У меня имеется...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru