Quantcast
Channel: Extended WPF Toolkit™ Community Edition
Viewing all articles
Browse latest Browse all 4964

New Post: Template SplitButton

$
0
0
I have tried what you suggest here and basically lost the ability to open the dropdown menu by clicking on the button. What could I be missing?
Does it have something to do with the outer "ControlChrome"? You mention only the two "partial" chromes in your solution, but there are three, one encapsulating the other two. Lacking a better idea i also replaced that one with a Border. Could that be the problem?
Here is my ControlTemplate for the "custom" SplitButton:
<ControlTemplate TargetType="{x:Type toolkit:SplitButton}">
                        <Grid x:Name="MainGrid" SnapsToDevicePixels="True">
                            <Border x:Name="ControlChrome" Background="{TemplateBinding Background}" CornerRadius="2.75">
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*" />
                                        <ColumnDefinition Width="Auto" />
                                    </Grid.ColumnDefinitions>
                                    <Button x:Name="PART_ActionButton" Margin="0" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Padding="{TemplateBinding Padding}" >
                                        <Button.Template>
                                            <ControlTemplate TargetType="Button">
                                                <ContentPresenter />
                                            </ControlTemplate>
                                        </Button.Template>
                                        <Grid>
                                            <Border x:Name="ActionButtonBorder"
                                                   BorderThickness="1,1,0,1"
                                                   CornerRadius="2.75, 0, 0, 2.75">
                                                <ContentPresenter Name="ActionButtonContent" Margin="{TemplateBinding Padding}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="true" />
                                            </Border>
                                        </Grid>
                                    </Button>
                                    <ToggleButton x:Name="PART_ToggleButton"
                                      Grid.Column="1"
                                      IsTabStop="False"
                                      IsChecked="{Binding IsOpen, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
                                      IsHitTestVisible="{Binding IsOpen, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolConverter}}">
                                        <ToggleButton.Template>
                                            <ControlTemplate TargetType="ToggleButton">
                                                <ContentPresenter />
                                            </ControlTemplate>
                                        </ToggleButton.Template>
                                        <Grid>
                                            <Border x:Name="ToggleButtonBorder"
                                                   Padding="1,0,1,0"
                                                   CornerRadius="0, 2.75, 2.75, 0"
>
                                                <Grid x:Name="arrowGlyph" IsHitTestVisible="False" Margin="4,3,4,3">
                                                    <Path x:Name="Arrow" Width="7" Height="4" Data="M 0,1 C0,1 0,0 0,0 0,0 3,0 3,0 3,0 3,1 3,1 3,1 4,1 4,1 4,1 4,0 4,0 4,0 7,0 7,0 7,0 7,1 7,1 7,1 6,1 6,1 6,1 6,2 6,2 6,2 5,2 5,2 5,2 5,3 5,3 5,3 4,3 4,3 4,3 4,4 4,4 4,4 3,4 3,4 3,4 3,3 3,3 3,3 2,3 2,3 2,3 2,2 2,2 2,2 1,2 1,2 1,2 1,1 1,1 1,1 0,1 0,1 z" Fill="#FF000000" />
                                                </Grid>
                                            </Border>
                                        </Grid>
                                    </ToggleButton>
                                </Grid>
                            </Border>

                            <Popup x:Name="PART_Popup" 
                         HorizontalOffset="1"
                         VerticalOffset="1"
                         AllowsTransparency="True"
                         StaysOpen="False"
                         Placement="Bottom"
                         Focusable="False"
                         IsOpen="{Binding IsChecked, ElementName=PART_ToggleButton}">
                                <!-- TODO: Create Popup Styles that can be reused on all popups in the toolkit-->
                                <Border BorderThickness="1" Background="{StaticResource PopupBackgroundBrush}" BorderBrush="{StaticResource ColorPickerDarkBorderBrush}">
                                    <ContentPresenter x:Name="PART_ContentPresenter" Content="{TemplateBinding DropDownContent}" />
                                </Border>
                            </Popup>

                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsEnabled" Value="False">
                                <Setter Property="Fill" TargetName="Arrow" Value="#AFAFAF" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>

Viewing all articles
Browse latest Browse all 4964

Trending Articles



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