Re[2]: [WPF] Как перенаправить клик по ячейке Grid на CheckBox?
От: Omitishi  
Дата: 03.12.14 00:03
Оценка:
Здравствуйте, vit_as, Вы писали:

_>Одно из наиболее простых, на мой взгляд, решений — переопределить шаблон CheckBox'а, таким образом, чтобы он растягивался на всю ячейку.


_>
_>         <Style TargetType="{x:Type CheckBox}">
_>                    <Setter Property="BorderThickness"
_>                            Value="1" />
_>                    <Setter Property="BorderBrush"
_>                            Value="Silver" />
_>                    <Setter Property="Background"
_>                            Value="Transparent" />
_>                    <Setter Property="Template">
_>                        <Setter.Value>
_>                            <ControlTemplate TargetType="{x:Type CheckBox}">
_>                                <Border SnapsToDevicePixels="True"
_>                                        Background="Transparent">
_>                                    <Border  SnapsToDevicePixels="True"
_>                                             Width="14"
_>                                             Height="14"
_>                                             BorderThickness="{TemplateBinding BorderThickness}"
_>                                             BorderBrush="{TemplateBinding BorderBrush}">
_>                                        <Path Fill="#FFF96E2E"
_>                                              Name="checkGlyph"
_>                                              Visibility="Hidden"
_>                                              Stretch="Fill"
_>                                              Data="M102.03442,598.79645 L105.22962,597.78918 L106.78825,600.42358 C106.78825,600.42358 108.51028,595.74304 110.21724,593.60419 C112.00967,591.35822 114.89314,591.42316 114.89314,591.42316 C114.89314,591.42316 112.67844,593.42645 111.93174,594.44464 C110.7449,596.06293 107.15683,604.13837 107.15683,604.13837 z" />
_>                                    </Border>
_>                                </Border>
_>                                <ControlTemplate.Triggers>
_>                                    <Trigger Property="IsMouseOver"
_>                                             Value="True">
_>                                        <Setter Property="BorderBrush"
_>                                                Value="Black" />
_>                                        <Setter Property="Fill"
_>                                                TargetName="checkGlyph"
_>                                                Value="#FFFF5E2E" />
_>                                    </Trigger>
_>                                    <Trigger Property="IsChecked"
_>                                             Value="True">
_>                                        <Setter Property="Visibility"
_>                                                TargetName="checkGlyph"
_>                                                Value="Visible" />
_>                                    </Trigger>
_>                                    <Trigger Property="IsEnabled"
_>                                             Value="False">
_>                                        <Setter Property="BorderBrush"
_>                                                Value="Gray" />
_>                                        <Setter Property="Fill"
_>                                                TargetName="checkGlyph"
_>                                                Value="#FFD6D6D6" />
_>                                    </Trigger>
_>                                </ControlTemplate.Triggers>
_>                            </ControlTemplate>
_>                        </Setter.Value>
_>                    </Setter>
_>                </Style>
_>


Но, как я упоминал в первом сообщении, контрол создается в коде программы, то есть CheckBox добавляется на Grid программно, поэтому непонятно, как получить доступ к XAML контрола и осуществить показанные Вами изменения.
Быть может есть способ сделать это при создании CheckBox?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.