изменить кнопку на его обязательный цвет при нажатии - PullRequest
0 голосов
/ 05 октября 2010

я хочу изменить цвет кнопки при нажатии:

            <DataTemplate>
                <!--Click="btn_Click"-->
                <ItemsControl DataContext="{Binding}" ItemsSource="{Binding}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>

                            <Button 
                                Name="btn"
                                DataContext="{Binding}"                             
                                Height="65" Width="79"
                                Background="Gray"
                                >

                                <Button.Template>

                                    <ControlTemplate TargetType="{x:Type Button}">
                                        <Ellipse Name="elipse1" Height="65" Width="79" Fill="{Binding Path=ButtonColor}" Visibility="Collapsed"></Ellipse>
                                        <ControlTemplate.Triggers>
                                             <Trigger Property="IsPressed" Value="True">
                                                <Setter TargetName="elipse1" Property="Visibility" Value="Visible"/>

                                            </Trigger>
                                         </ControlTemplate.Triggers>
                                    </ControlTemplate>
                                </Button.Template>

                            </Button>

                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>

Дальше кажется, что когда я использую все тригеры <>, серая кнопка не отображается, если этот шаблон сильнее, чем привязка? Это правда? как это сделать?

1 Ответ

0 голосов
/ 05 октября 2010

Проблема в том, что когда кнопка не нажата - она ​​не оказывает никакого визуального воздействия (Visibility = "Collapsed") - в кнопке нет элементов - таким образом, она становится невидимой (и тогда ее трудно нажать: )).

Вам нужно поместить что-то помимо эллипса в ControlTemplate, чтобы оно показывало что-то вместо эллипса.

...