簡體   English   中英

如何避免按鈕上的文本在 UWP xaml 中被截斷

[英]How to avoid text on a button from being cut off in UWP xaml

我有一個 MinWidth 設置為 MinWidth="118" 的按鈕,效果很好。 但是,當我使用設置 -> 輔助功能 -> 文本大小 -> 將其更改為 200% 更改 windows 中的文本大小時,文本會占用更多空間,並且硬編碼的寬度不夠,因此文本會被截斷。 那么如何設置寬度以使文本永遠不會被切斷? 此外,我不想計算 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}" />

謝謝

那么有沒有辦法設置寬度,使按鈕上的文本永遠不會被切斷?

不, Button控件沒有這樣的內置功能。 您仍然需要自己管理Button寬度。 處理DisplayInformation.DpiChanged 事件並獲取當前的ResolutionScale值。 然后您可以根據該值更改寬度。

 public MainPage()
    {
        this.InitializeComponent();

        DisplayInformation displayInformation = DisplayInformation.GetForCurrentView();
        displayInformation.DpiChanged += DisplayInformation_DpiChanged;
    }

    private void DisplayInformation_DpiChanged(DisplayInformation sender, object args)
    {
        DisplayInformation displayInformation = DisplayInformation.GetForCurrentView();
        ResolutionScale scale = displayInformation.ResolutionScale;
        switch (scale)
        {
            case ResolutionScale.Scale100Percent:
                //your logic
                break;
            case ResolutionScale.Scale200Percent:
                // your logic
                break;
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM