Windows store apps 如何扩展Callisto CustomDialog的内容?

Windows store apps 如何扩展Callisto CustomDialog的内容?,windows-store-apps,customdialog,callisto,Windows Store Apps,Customdialog,Callisto,我很难弄清楚CustomDialog是如何决定其内容的宽度的。附加的是从Callisto的测试应用程序复制的代码,添加了两个HorizontalAlignment=“Stretch”。没有东西可以伸展。我想拉伸内容(例如StackPanel)。我还尝试为StackPanel的宽度属性赋值。CustomDialog似乎有一些算法来选择最大宽度。无论你做什么,它的内容都不会超过这个宽度。有人能解释一下吗 <!-- Example use of the CustomDialog control

我很难弄清楚CustomDialog是如何决定其内容的宽度的。附加的是从Callisto的测试应用程序复制的代码,添加了两个HorizontalAlignment=“Stretch”。没有东西可以伸展。我想拉伸内容(例如StackPanel)。我还尝试为StackPanel的宽度属性赋值。CustomDialog似乎有一些算法来选择最大宽度。无论你做什么,它的内容都不会超过这个宽度。有人能解释一下吗

<!-- Example use of the CustomDialog control -->
<callisto:CustomDialog x:FieldModifier="public" x:Name="LoginDialog" 
                    Title="Bacon Terms and Conditions" 
                    Background="Teal" BackButtonVisibility="Visible" BackButtonClicked="LoginDialog_BackButtonClicked_1"
                    HorizontalAlignment="Stretch">
    <StackPanel HorizontalAlignment="Stretch">
        <TextBlock Margin="0,0,0,8" FontSize="14.6667" FontWeight="SemiLight" TextWrapping="Wrap">
        Bacon sausage frankfurter tenderloin turkey salami andouille bresaola. Venison salami prosciutto, pork belly turducken tri-tip spare ribs chicken strip steak fatback shankle tongue boudin andouille. Meatloaf salami pork ground round turkey jerky meatball ball tip, filet mignon fatback flank prosciutto shank. Turkey boudin ham hock, filet mignon tri-tip bresaola tongue venison spare ribs meatloaf flank beef pancetta. Leberkas turducken flank ground round biltong chuck bacon kielbasa. Beef pastrami meatball, short loin venison swine pork loin shank meatloaf spare ribs.
        </TextBlock>
        <CheckBox Margin="0,0,0,8" Foreground="White" Content="I agree to the Terms and Conditions of Bacon" />
        <TextBlock Margin="0,0,0,8" FontSize="14.6667" FontWeight="SemiLight" Text="Enter your name for acceptance" />
        <callisto:WatermarkTextBox HorizontalAlignment="Left" Watermark="Type your name" Width="400" Height="35" />
        <StackPanel Margin="0,20,0,0" HorizontalAlignment="Right" Orientation="Horizontal">
            <Button Content="OK" Width="90" Margin="0,0,20,0" />
            <Button Content="CANCEL" Width="190" Click="DialogCancelClicked" />
        </StackPanel>
    </StackPanel>
</callisto:CustomDialog>

培根香肠法兰克福里脊嫩火鸡意大利腊肠。鹿肉意大利腊肠火腿、猪肚turducken三尖排骨鸡排肥背香肠舌boudin andouille。肉糕意大利腊肠猪肉磨圆火鸡肉干圆球头,菲力牛排,肥背侧翼火腿腿。火鸡肉丁火腿、菲力牛排、三尖布列萨奥拉鹿肉、排骨、肉糕、侧翼牛肉煎饼。勒贝卡斯·图尔达肯侧翼围着比尔顿·查克·培根·基尔巴萨。牛肉熏牛肉丸、短里脊鹿肉、猪里脊肉、小腿肉、排骨。

目前,默认样式似乎不支持此功能

希望这有助于和快乐的编码

编辑:错误的风格!修好了,很抱歉


编辑:最后一项尝试是从内容定义中删除列定义。这可能会对标题定位产生影响,因此您可能需要在底部处理它。

请尝试
HorizontalContentAlignment=“Stretch”
我刚刚根据您的提示进行了尝试。不幸的是,这并没有任何区别。下一步要尝试的是使用
网格
,而不是
堆栈面板
StackPanel
s通常会出现问题,要求尽可能多的空间<代码>网格s没有此问题。我在提问之前尝试了网格。这次我刚刚用CustomDialog的HorizontalContentAlignment=“Stretch”再次尝试了它。不幸的是,它仍然是一样的。从阅读源代码来看,他的
样式
似乎没有使
ContentPresenter
从模板化父级继承
ContentAlignment
属性。我正在添加一个可能的解决方案作为答案,因为它太大了,无法放在这里。再次感谢。我收到以下错误:“无法将TargetType为'Callisto.Controls.Flyout'的样式应用于'Callisto.Controls.CustomDialog'类型的对象”Snap!你说得对,我抄错样式了!解决方案仍然相同(风格不同),但我会修正我的答案。非常感谢修正。我觉得我们现在离解决问题更近了。我当前收到以下错误:错误21在类型“ContentPresenter”中找不到属性“HorizontalAllignment”。我刚刚注意到它只是一个输入错误。现在,我遇到了如下错误:“找不到名为/Key CustomDialogBorderThemeThickness的资源”。有很多资源找不到。最快的修复方法是转到Github答案中的链接,并将顶部合并的主题词典复制到您的解决方案中。
    <Style TargetType="local:CustomDialog">
    <Setter Property="IsOpen" Value="False" />
    <Setter Property="BorderThickness" Value="{ThemeResource CustomDialogBorderThemeThickness}"/>
    <Setter Property="BorderBrush" Value="{ThemeResource CustomDialogBorderThemeBrush}" />
    <Setter Property="BackButtonVisibility" Value="Collapsed" />
    <Setter Property="Background" Value="{ThemeResource CustomDialogBackgroundThemeBrush}" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:CustomDialog">
                <Popup x:Name="PART_RootPopup" IsLightDismissEnabled="False" IsOpen="{TemplateBinding IsOpen}">
                    <Grid x:Name="PART_RootGrid" Background="#72000000">
                        <Border x:Name="PART_BannerBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" VerticalAlignment="Center">
                            <Grid x:Name="PART_DialogGrid" Background="{TemplateBinding Background}" VerticalAlignment="Center">
                                <Grid.Resources>
                                    <Style x:Key="DialogBackButtonStyle" TargetType="Button">
                                        <Setter Property="MinWidth" Value="0"/>
                                        <Setter Property="FontFamily" Value="Segoe UI Symbol"/>
                                        <Setter Property="FontWeight" Value="Normal"/>
                                        <Setter Property="FontSize" Value="26.66667"/>
                                        <Setter Property="AutomationProperties.AutomationId" Value="BackButton"/>
                                        <Setter Property="AutomationProperties.Name" Value="Back"/>
                                        <Setter Property="AutomationProperties.ItemType" Value="Navigation Button"/>
                                        <Setter Property="Template">
                                            <Setter.Value>
                                                <ControlTemplate TargetType="Button">
                                                    <Grid x:Name="RootGrid" Width="30" Height="30">
                                                        <Grid Margin="-3,-5,0,0">
                                                            <TextBlock x:Name="BackgroundGlyph" Text="&#xE0D4;" Foreground="{Binding ElementName=PART_DialogGrid, Path=Background}"/>
                                                            <TextBlock x:Name="NormalGlyph" Text="{ThemeResource SettingsFlyoutBackButtonGlyph}" Foreground="{Binding ElementName=PART_DialogGrid, Path=Background, Converter={StaticResource ColorContrast}}"/>
                                                            <TextBlock x:Name="ArrowGlyph" Text="&#xE0C4;" Foreground="{Binding ElementName=PART_DialogGrid, Path=Background}" Opacity="0"/>
                                                        </Grid>
                                                        <Rectangle
                        x:Name="FocusVisualWhite"
                        IsHitTestVisible="False"
                        Stroke="{ThemeResource FocusVisualWhiteStrokeThemeBrush}"
                        StrokeEndLineCap="Square"
                        StrokeDashArray="1,1"
                        Opacity="0"
                        StrokeDashOffset="1.5"/>
                                                        <Rectangle
                        x:Name="FocusVisualBlack"
                        IsHitTestVisible="False"
                        Stroke="{ThemeResource FocusVisualBlackStrokeThemeBrush}"
                        StrokeEndLineCap="Square"
                        StrokeDashArray="1,1"
                        Opacity="0"
                        StrokeDashOffset="0.5"/>

                                                        <VisualStateManager.VisualStateGroups>
                                                            <VisualStateGroup x:Name="CommonStates">
                                                                <VisualState x:Name="Normal" />
                                                                <VisualState x:Name="PointerOver">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground">
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource BackButtonPointerOverBackgroundThemeBrush}"/>
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="Pressed">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground">
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{Binding ElementName=PART_DialogGrid, Path=Background, Converter={StaticResource ColorContrast}}"/>
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                        <DoubleAnimation
                                        Storyboard.TargetName="ArrowGlyph"
                                        Storyboard.TargetProperty="Opacity"
                                        To="1"
                                        Duration="0"/>
                                                                        <DoubleAnimation
                                        Storyboard.TargetName="NormalGlyph"
                                        Storyboard.TargetProperty="Opacity"
                                        To="0"
                                        Duration="0"/>
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="Disabled">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="RootGrid" Storyboard.TargetProperty="Visibility">
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                    </Storyboard>
                                                                </VisualState>
                                                            </VisualStateGroup>
                                                            <VisualStateGroup x:Name="FocusStates">
                                                                <VisualState x:Name="Focused">
                                                                    <Storyboard>
                                                                        <DoubleAnimation
                                        Storyboard.TargetName="FocusVisualWhite"
                                        Storyboard.TargetProperty="Opacity"
                                        To="1"
                                        Duration="0"/>
                                                                        <DoubleAnimation
                                        Storyboard.TargetName="FocusVisualBlack"
                                        Storyboard.TargetProperty="Opacity"
                                        To="1"
                                        Duration="0"/>
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="Unfocused" />
                                                                <VisualState x:Name="PointerFocused" />
                                                            </VisualStateGroup>
                                                        </VisualStateManager.VisualStateGroups>
                                                    </Grid>
                                                </ControlTemplate>
                                            </Setter.Value>
                                        </Setter>
                                    </Style>
                                </Grid.Resources>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition/>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition/>
                                </Grid.ColumnDefinitions>
                                <Border Grid.Column="1" VerticalAlignment="Center">
                                    <StackPanel Margin="13,19,13,25" HorizontalAlignment="Center" Width="{TemplateBinding Width}" MaxWidth="680">
                                        <local:DynamicTextBlock Foreground="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Background, Converter={StaticResource ColorContrast}}" x:Name="PART_Title" Text="{TemplateBinding Title}" FontFamily="Segoe UI" FontSize="26.6667" FontWeight="Light" Margin="0,0,0,8" />
                                        <ContentPresenter Margin="0" x:Name="PART_Content" Foreground="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Background, Converter={StaticResource ColorContrast}}" />
                                    </StackPanel>
                                </Border>
                                <Button x:Name="PART_BackButton" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,24,0,0"
                                    Style="{StaticResource DialogBackButtonStyle}" Command="{TemplateBinding BackButtonCommand}" CommandParameter="{TemplateBinding BackButtonCommandParameter}" Visibility="{TemplateBinding BackButtonVisibility}"/>
                            </Grid>
                        </Border>
                    </Grid>
                </Popup>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
<callisto:CustomDialog ...>

....

    <callisto:CustomDialog.Style>
            <Style TargetType="callisto:CustomDialog">
                <Setter Property="IsOpen" Value="False" />
                <Setter Property="BorderThickness" Value="{ThemeResource CustomDialogBorderThemeThickness}"/>
                <Setter Property="BorderBrush" Value="{ThemeResource CustomDialogBorderThemeBrush}" />
                <Setter Property="BackButtonVisibility" Value="Collapsed" />
                <Setter Property="Background" Value="{ThemeResource CustomDialogBackgroundThemeBrush}" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="callisto:CustomDialog">
                            <Popup x:Name="PART_RootPopup" IsLightDismissEnabled="False" IsOpen="{TemplateBinding IsOpen}">
                                <Grid x:Name="PART_RootGrid" Background="#72000000">
                                    <Border x:Name="PART_BannerBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" VerticalAlignment="Center">
                                        <Grid x:Name="PART_DialogGrid" Background="{TemplateBinding Background}" VerticalAlignment="Center">
                                            <Grid.Resources>
                                                <Style x:Key="DialogBackButtonStyle" TargetType="Button">
                                                    <Setter Property="MinWidth" Value="0"/>
                                                    <Setter Property="FontFamily" Value="Segoe UI Symbol"/>
                                                    <Setter Property="FontWeight" Value="Normal"/>
                                                    <Setter Property="FontSize" Value="26.66667"/>
                                                    <Setter Property="AutomationProperties.AutomationId" Value="BackButton"/>
                                                    <Setter Property="AutomationProperties.Name" Value="Back"/>
                                                    <Setter Property="AutomationProperties.ItemType" Value="Navigation Button"/>
                                                    <Setter Property="Template">
                                                        <Setter.Value>
                                                            <ControlTemplate TargetType="Button">
                                                                <Grid x:Name="RootGrid" Width="30" Height="30">
                                                                    <Grid Margin="-3,-5,0,0">
                                                                        <TextBlock x:Name="BackgroundGlyph" Text="&#xE0D4;" Foreground="{Binding ElementName=PART_DialogGrid, Path=Background}"/>
                                                                        <TextBlock x:Name="NormalGlyph" Text="{ThemeResource SettingsFlyoutBackButtonGlyph}" Foreground="{Binding ElementName=PART_DialogGrid, Path=Background, Converter={StaticResource ColorContrast}}"/>
                                                                        <TextBlock x:Name="ArrowGlyph" Text="&#xE0C4;" Foreground="{Binding ElementName=PART_DialogGrid, Path=Background}" Opacity="0"/>
                                                                    </Grid>
                                                                    <Rectangle
                                    x:Name="FocusVisualWhite"
                                    IsHitTestVisible="False"
                                    Stroke="{ThemeResource FocusVisualWhiteStrokeThemeBrush}"
                                    StrokeEndLineCap="Square"
                                    StrokeDashArray="1,1"
                                    Opacity="0"
                                    StrokeDashOffset="1.5"/>
                                                                    <Rectangle
                                    x:Name="FocusVisualBlack"
                                    IsHitTestVisible="False"
                                    Stroke="{ThemeResource FocusVisualBlackStrokeThemeBrush}"
                                    StrokeEndLineCap="Square"
                                    StrokeDashArray="1,1"
                                    Opacity="0"
                                    StrokeDashOffset="0.5"/>

                                                                    <VisualStateManager.VisualStateGroups>
                                                            <VisualStateGroup x:Name="CommonStates">
                                                                <VisualState x:Name="Normal" />
                                                                <VisualState x:Name="PointerOver">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground">
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource BackButtonPointerOverBackgroundThemeBrush}"/>
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="Pressed">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground">
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{Binding ElementName=PART_DialogGrid, Path=Background, Converter={StaticResource ColorContrast}}"/>
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                        <DoubleAnimation
                                        Storyboard.TargetName="ArrowGlyph"
                                        Storyboard.TargetProperty="Opacity"
                                        To="1"
                                        Duration="0"/>
                                                                        <DoubleAnimation
                                        Storyboard.TargetName="NormalGlyph"
                                        Storyboard.TargetProperty="Opacity"
                                        To="0"
                                        Duration="0"/>
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="Disabled">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="RootGrid" Storyboard.TargetProperty="Visibility">
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                    </Storyboard>
                                                                </VisualState>
                                                            </VisualStateGroup>
                                                            <VisualStateGroup x:Name="FocusStates">
                                                                <VisualState x:Name="Focused">
                                                                    <Storyboard>
                                                                        <DoubleAnimation
                                        Storyboard.TargetName="FocusVisualWhite"
                                        Storyboard.TargetProperty="Opacity"
                                        To="1"
                                        Duration="0"/>
                                                                        <DoubleAnimation
                                        Storyboard.TargetName="FocusVisualBlack"
                                        Storyboard.TargetProperty="Opacity"
                                        To="1"
                                        Duration="0"/>
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="Unfocused" />
                                                                <VisualState x:Name="PointerFocused" />
                                                            </VisualStateGroup>
                                                        </VisualStateManager.VisualStateGroups>
                                                    </Grid>
                                                </ControlTemplate>
                                            </Setter.Value>
                                        </Setter>
                                    </Style>
                                </Grid.Resources>
                                <Border VerticalAlignment="Center">
                                    <StackPanel Margin="13,19,13,25" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Width="{TemplateBinding Width}" MaxWidth="680">
                                        <callisto:DynamicTextBlock Foreground="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Background, Converter={StaticResource ColorContrast}}" x:Name="PART_Title" Text="{TemplateBinding Title}" FontFamily="Segoe UI" FontSize="26.6667" FontWeight="Light" Margin="0,0,0,8" />
                                        <ContentPresenter Margin="0" x:Name="PART_Content" Foreground="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=Background, Converter={StaticResource ColorContrast}}" HorizontalAllignment="{TemplateBinding HorizontalContentAlignment}"/>
                                    </StackPanel>
                                </Border>
                                <Button x:Name="PART_BackButton" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,24,0,0"
                                    Style="{StaticResource DialogBackButtonStyle}" Command="{TemplateBinding BackButtonCommand}" CommandParameter="{TemplateBinding BackButtonCommandParameter}" Visibility="{TemplateBinding BackButtonVisibility}"/>
                            </Grid>
                        </Border>
                    </Grid>
                </Popup>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

....

</callisto:CustomDialog>