Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Исчезает Button.Content / 8 сообщений из 8, страница 1 из 1
24.10.2015, 21:54
    #39085680
Varcom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исчезает Button.Content
Сегодня поймал неприятный глюк. Если создать стиль кнопки со вложенными контролами, и поставить на окно несколько таких кнопок, то нормально отображается только одна из них, последняя. Вопрос, как поделить созданный стиль между всеми кнопками?
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<Window x:Class="Buttons.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <Style TargetType="Button">
            <Setter Property="Content">
                <Setter.Value>
                    <TextBlock Text="Добавить"/>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid>
        <StackPanel>
            <Button Height="50" Width="100" Command="{Binding Command}"/>
            <Button Height="50" Width="100" Command="{Binding Command}"/>
            <Button Height="50" Width="100" Command="{Binding Command}"/>
        </StackPanel>
    </Grid>
</Window>
...
Рейтинг: 0 / 0
24.10.2015, 22:07
    #39085683
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исчезает Button.Content
VarcomСегодня поймал неприятный глюк. Если создать стиль кнопки со вложенными контролами, и поставить на окно несколько таких кнопок, то нормально отображается только одна из них, последняя. Вопрос, как поделить созданный стиль между всеми кнопками?
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<Window x:Class="Buttons.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <Style TargetType="Button">
            <Setter Property="Content">
                <Setter.Value>
                    <TextBlock Text="Добавить"/>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid>
        <StackPanel>
            <Button Height="50" Width="100" Command="{Binding Command}"/>
            <Button Height="50" Width="100" Command="{Binding Command}"/>
            <Button Height="50" Width="100" Command="{Binding Command}"/>
        </StackPanel>
    </Grid>
</Window>


а это не глюк, это норма.
смотри, что получается.
Ты создаешь в ресурсах стиль, внутри стиля есть контрол. Фокус в том, что 1 контрол не может находится в 2 местах одновременно.
В ресурсах создается только 1 инстанс этого стиля, следовательно только 1 TextBlock.
Для того, чтоб работало нормально задай для Content строку. Тогда для содержимого на кнопке будет использоваться ContentPresenter с шаблоном по умолчанию.
...
Рейтинг: 0 / 0
24.10.2015, 22:27
    #39085687
Varcom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исчезает Button.Content
Roman MejtesДля того, чтоб работало нормально задай для Content строку. Тогда для содержимого на кнопке будет использоваться ContentPresenter с шаблоном по умолчанию.
Содержимое кнопки должно состоять из нескольких вложенных контролов.
...
Рейтинг: 0 / 0
24.10.2015, 22:34
    #39085690
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исчезает Button.Content
VarcomRoman MejtesДля того, чтоб работало нормально задай для Content строку. Тогда для содержимого на кнопке будет использоваться ContentPresenter с шаблоном по умолчанию.
Содержимое кнопки должно состоять из нескольких вложенных контролов.
используйте DataTemplate или ControlTemaplte
...
Рейтинг: 0 / 0
26.10.2015, 09:59
    #39086438
Sergey TSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исчезает Button.Content
Varcom,

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
  <Window.Resources>
    <Style x:Key="kb" TargetType="{x:Type Button}" x:Shared="false">
      <Setter Property="Content">
        <Setter.Value>
          <TextBlock Text="Добавить"/>
        </Setter.Value>
      </Setter>
    </Style>
  </Window.Resources>
  <Grid>
    <StackPanel>
      <Button Height="50" Width="100" Command="{Binding Command}" Style="{StaticResource kb}"/>
      <Button Height="50" Width="100" Command="{Binding Command}" Style="{StaticResource kb}"/>
      <Button Height="50" Width="100" Command="{Binding Command}" Style="{StaticResource kb}"/>
    </StackPanel>
  </Grid>
</Window>
...
Рейтинг: 0 / 0
26.10.2015, 14:35
    #39086896
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исчезает Button.Content
Sergey TSV,

это самый глупый из возможных способов сделать то, что требуется автору.
Какой смысл создавать 3 экземпляра стиля для каждой кнопки, если вся суть ресурсов в том, чтоб использовать 1 экземпляр для 3 кнопок?
Нужно просто использовать шаблоны и не городить вот такую ерунду.
А если стиль будет глобальным, то для всех кнопок в приложении создавать по экземпляру стиля?
А если в стиле еще будет анимация? Триггеры? и т.д. и т.п.
...
Рейтинг: 0 / 0
26.10.2015, 15:53
    #39087054
Sergey TSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исчезает Button.Content
Roman Mejtes,

Глупо эмоционально критиковать один из альтернативных вариантов решения придумывая за автора дополнительные условия. Я тут не вижу ни анимации, ни триггеров...
...
Рейтинг: 0 / 0
26.10.2015, 18:15
    #39087287
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исчезает Button.Content
Sergey TSVГлупо эмоционально критиковать один из альтернативных вариантов решения придумывая за автора дополнительные условия. Я тут не вижу ни анимации, ни триггеров..нет, скорее стоило бы давать совет с дополнительным комментарием ))

Ведь вопрос автором урезан до минимально необходимого (как и предписывает этикет ))), а в реальности класс стиля может оказаться действительно немаленьким.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Исчезает Button.Content / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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