Wpf 如何将按钮的宽度限制为最大跨度?

Wpf 如何将按钮的宽度限制为最大跨度?,wpf,Wpf,我有一个带有网格模板的ItemControls,我在其中用colspan(我正在实现一个日历)放置项目(按钮)。当“文本输入”按钮太大时,按钮宽度将超过colspan。有什么方法可以隐藏超出范围的文本 编辑 xaml: <ItemsControl Grid.Column="1" ItemsSource="{Binding Prenotazioni}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate

我有一个带有网格模板的ItemControls,我在其中用colspan(我正在实现一个日历)放置项目(按钮)。当“文本输入”按钮太大时,按钮宽度将超过colspan。有什么方法可以隐藏超出范围的文本

编辑

xaml:

<ItemsControl Grid.Column="1" ItemsSource="{Binding Prenotazioni}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid>
                <Grid.Style>
                    <Style>
                        <Setter Property="Grid.Background">
                            <Setter.Value>
                                <MultiBinding Converter="{StaticResource GridColumnsDefinitionsSetter}">
                                    <Binding RelativeSource="{RelativeSource Self}" />
                                    <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="Periodo" />
                                    <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="StartDate" />
                                    <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="EndDate" />
                                    <Binding Path="." />
                                </MultiBinding>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </Grid.Style>
            </Grid>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Button 
                Command="{x:Static local:Timeline.SelectCommand}" 
                CommandTarget="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}}" 
                CommandParameter="{Binding .}">
                <Button.ToolTip>
                    <local:SchedaServizioPrenotato />
                </Button.ToolTip>
                <Button.Style>
                    <Style TargetType="{x:Type Button}">
                        <Setter Property="Background" Value="LightYellow"/>
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding Prenotazione.Annullata}" Value="True">
                                <Setter Property="Background" Value="LightSalmon"/>
                                <Setter Property="Opacity" Value="0.4"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Prenotazione.Confermata}" Value="True">
                                <Setter Property="Background" Value="LightBlue"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Button.Style>
                <TextBlock Text="{Binding Prenotazione.Nominativo}" TextTrimming="WordEllipsis"/>
            </Button>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemContainerStyle>
        <Style>
            <Setter Property="Grid.Column">
                <Setter.Value>
                    <MultiBinding Converter="{StaticResource ItemColumnSetter}">
                        <Binding RelativeSource="{RelativeSource Self}" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="Periodo" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="StartDate" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="EndDate" />
                        <Binding Path="Periodo.Inizio" />
                        <Binding Path="Periodo.Fine" />
                    </MultiBinding>
                </Setter.Value>
            </Setter>
            <Setter Property="Grid.Row">
                <Setter.Value>
                    <MultiBinding Converter="{StaticResource ItemRowSetter}">
                        <Binding RelativeSource="{RelativeSource Self}" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="Periodo" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="StartDate" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="EndDate" />
                        <Binding Path="." />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=ItemsControl}" Path="DataContext" />
                    </MultiBinding>
                </Setter.Value>
            </Setter>
            <Setter Property="Grid.ColumnSpan">
                <Setter.Value>
                    <MultiBinding Converter="{StaticResource ItemColumnSpanSetter}">
                        <Binding RelativeSource="{RelativeSource Self}" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="Periodo" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="StartDate" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="EndDate" />
                        <Binding Path="." />
                        <Binding Path="Periodo.Inizio" />
                        <Binding Path="Periodo.Fine" />
                    </MultiBinding>
                </Setter.Value>
            </Setter>
            <Setter Property="FrameworkElement.Visibility">
                <Setter.Value>
                    <MultiBinding Converter="{StaticResource ItemVisibilitySetter}">
                        <Binding RelativeSource="{RelativeSource Self}" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="Periodo" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="StartDate" />
                        <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=local:Timeline}" Path="EndDate" />
                        <Binding Path="Periodo.Inizio" />
                        <Binding Path="Periodo.Fine" />
                    </MultiBinding>
                </Setter.Value>
            </Setter>
        </Style>
    </ItemsControl.ItemContainerStyle>
</ItemsControl>

编辑


为清晰起见,我在网格上设置了列定义。背景转换器可以这样做:

<Button>
    <TextBlock Text="Text" TextTrimming="WordEllipsis"/>
</Button>

还有一个名为ClipToBound和TextWrapping的属性,请查看此属性

TextWrapping="Wrap"

您是否尝试过
MaxWidth
HorizontalAlignment=“Stretch”
?如果您向我们展示一些您的XAML代码,会更容易。。。