Quantcast
Channel: Windows Presentation Foundation (WPF) forum
Viewing all articles
Browse latest Browse all 18858

How to access control from ContextMenu

$
0
0

Hi,

I have expander control , on the header of expander i have defined context menu, which has several buttons , how can i acess these buttons from code behind.

I have tried following code in c#

 _btnUp = (Button)(_Expander.Header as Control).ContextMenu.Template.FindName("btnUp", (_Expander.Header as Control).ContextMenu);

here is xaml of expander and Context menu

<ContextMenu x:Key="HeaderContextMenu" Height="100"><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="20" /><ColumnDefinition Width="20" /><ColumnDefinition Width="20" /><ColumnDefinition Width="50" /></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition Height="20"/></Grid.RowDefinitions><Button Grid.Column="0" x:Name="btnUp" Style="{StaticResource btnUp}"></Button><Button  Grid.Column="1" x:Name="btnDown" Style="{StaticResource btnDown}"></Button><Button  Grid.Column="2" x:Name="btnUnPin" Style="{StaticResource btnPin}"></Button><Button Content="Alle" Grid.Column="3" x:Name="btnAll" Style="{StaticResource btnAll}" ></Button></Grid></ContextMenu><Style TargetType="{x:Type Expander}" x:Key="Expanderstyle_New"><Setter Property="Foreground" Value="White"/><Setter Property="FlowDirection" Value="LeftToRight"></Setter><Setter Property="HorizontalContentAlignment" Value="Stretch"/><Setter Property="HorizontalAlignment" Value="Stretch"></Setter><Setter Property="VerticalContentAlignment" Value="Top"/><Setter Property="BorderBrush" Value="Transparent"/><Setter Property="BorderThickness" Value="0"/><Setter Property="Margin" Value="0,0,0,10"></Setter><Setter Property="FontWeight" Value="Bold"/><Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Hidden"></Setter><Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Hidden"></Setter><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type Expander}"><ControlTemplate.Resources><Storyboard x:Key="Storyboard1"/></ControlTemplate.Resources><Grid Background="Transparent" ><Grid.RowDefinitions><RowDefinition Height="Auto" /><RowDefinition x:Name="ContentRow"
                             Height="0" /></Grid.RowDefinitions><Border x:Name="Content"
                    Grid.Row="1"
                    BorderThickness="1,0,1,1"><ContentPresenter Margin="1" /></Border><Border x:Name="Border"
                    Grid.Row="0"
                    BorderThickness="1"
                    CornerRadius="2,2,0,0" Background="{DynamicResource ExpanderHeaderBrush}"><Grid ><Grid.ColumnDefinitions><ColumnDefinition  /><ColumnDefinition Width="30"/></Grid.ColumnDefinitions><ContentPresenter Grid.Column="0"
                                  Margin="4,8,4,4"
                                  ContentSource="Header"
                                  RecognizesAccessKey="True"  x:Name="Header"  ContextMenu="{StaticResource HeaderContextMenu}"></ContentPresenter><ToggleButton OverridesDefaultStyle="True" x:Name="tgb"
                                	Template="{StaticResource ExpanderToggleButton}"
                                	IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" 
                                    Grid.Column="1" Margin="4,0" ><!--<Style TargetType="ToggleButton"><Setter Property="Visibility" Value="Visible" /><Style.Triggers><DataTrigger Binding="{Binding Path=HasItems, RelativeSource={RelativeSource Mode=Self, AncestorType={x:Type ListBox}}}"  Value="False"><Setter Property="Visibility" Value="Hidden" /></DataTrigger></Style.Triggers></Style>--></ToggleButton></Grid></Border></Grid><ControlTemplate.Triggers><Trigger Property="IsExpanded" Value="True"><Trigger.ExitActions><PauseStoryboard BeginStoryboardName="Storyboard1_BeginStoryboard"/></Trigger.ExitActions><Trigger.EnterActions><BeginStoryboard x:Name="Storyboard1_BeginStoryboard" Storyboard="{StaticResource Storyboard1}"/></Trigger.EnterActions><Setter TargetName="ContentRow" Property="Height" Value="{Binding DesiredHeight, ElementName=Content}"/></Trigger><Trigger SourceName="Header" Property="IsMouseOver" Value="True"><Setter TargetName="Header" Property="TextElement.Foreground" Value="{DynamicResource MouseOverBrush}"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style>


Sincerely, dhampall Please remember to mark the replies as answers if they help and unmark them if they provide no help.


Viewing all articles
Browse latest Browse all 18858

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>