【问题标题】:How to avoid text on a button from being cut off in UWP xaml如何避免按钮上的文本在 UWP xaml 中被截断
【发布时间】:2022-01-20 18:08:30
【问题描述】:

我有一个 MinWidth 设置为 MinWidth="118" 的按钮,效果很好。但是,当我使用设置 -> 辅助功能 -> 文本大小 -> 将其更改为 200% 更改窗口中的文本大小时,文本会占用更多空间,并且硬编码的宽度不够,因此文本会被截断。那么如何设置宽度以使文本永远不会被切断?此外,我不想计算 200% 文本大小的新宽度,因为按钮的文本可以在不进行任何代码更改的情况下更改,因为该文本是服务交付的。那么有没有办法设置宽度,让按钮上的文字永远不会被截断呢?

<Button
    MinWidth="118"
    MinHeight="30"
    HorizontalAlignment="Left"
    HorizontalContentAlignment="Center"
    VerticalContentAlignment="Center"
    AutomationProperties.Name="{x:Bind ViewModel.PrimaryActionAutomationName, Mode=OneWay}"
    BorderThickness="1"
    Click="{x:Bind ViewModel.InvokePrimaryAction}"
    Content="{x:Bind ViewModel.PrimaryAction, Mode=OneWay}"
    CornerRadius="3"
    Style="{StaticResource AccentButtonStyle}" />

谢谢

【问题讨论】:

    标签: xaml uwp winrt-xaml uwp-xaml c++-winrt


    【解决方案1】:

    那么有什么办法可以设置宽度,让按钮上的文字永远不会被截断?

    不,Button 控件没有这样的内置功能。您仍然需要自行管理Button 宽度。处理 DisplayInformation.DpiChanged Event 并获取当前的 ResolutionScale 值。然后你可以根据值改变宽度。

    MainPage.h

    struct MainPage : MainPageT<MainPage>
    {
        MainPage();
    
    private:
        Windows::Graphics::Display::DisplayInformation displayInfo{ nullptr };
        event_token DpiChangedToken{};
    
        void OnDpiChanged(Windows::Graphics::Display::DisplayInformation const&, Windows::Foundation::IInspectable const&);
    
    
    };
    

    MainPage.cpp

        MainPage::MainPage()
    {
        InitializeComponent();
    
        displayInfo = DisplayInformation::GetForCurrentView();
        DpiChangedToken = displayInfo.DpiChanged({ get_weak(), &MainPage::OnDpiChanged});
    }
    
    
    void MainPage::OnDpiChanged(DisplayInformation const&, IInspectable const&)
    {
        DisplayInformation displayInformation = DisplayInformation::GetForCurrentView();
        ResolutionScale scale = displayInformation.ResolutionScale();
       // switch logic here
    }
    

    【讨论】:

    • @IInspectable 我的错,我已经把代码改成了 c++-winrt。
    • 知道了。我缺少此命名空间的标头。
    猜你喜欢
    • 2012-07-25
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多