用户在运行时在UWP中调整控制器的大小

时间:2018-07-02 16:18:27

标签: uwp uwp-xaml

我如何在UWP中有一个像TExtBlock这样的控制器,用户可以用鼠标调整它的大小?

我不知道唯一的问题。 我尝试了XAMLBrewer的弹出控件,但这只是为了操纵而不是调整大小。

1 个答案:

答案 0 :(得分:0)

GridSplitter中有一个Windows Community Toolkit控件。

如果您的TextBlock位于网格中,则可以使用GridSplitter控件通过鼠标拖动来调整TextBlock的大小。

xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition  MinWidth="100"></ColumnDefinition>
        <ColumnDefinition></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition MinHeight="100"></RowDefinition>
        <RowDefinition Height="11"></RowDefinition>
        <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <TextBlock x:Name="txb" Grid.Column="0"
           TextWrapping="Wrap"
           Margin="12,12" PointerReleased="TextBlock_PointerReleased" PointerPressed="TextBlock_PointerPressed">
  This text to simulate the resizing feature of the Grid Splitter Control, try to move the splitter to see the effect RowDefinition MinHeight="100"
    </TextBlock>
    <controls:GridSplitter
        Width="11"
        Background="LightGray"
        GripperCursor="Default"
        HorizontalAlignment="Left"
        Grid.Column="1"
        ResizeDirection="Auto"
        ResizeBehavior="BasedOnAlignment"
        CursorBehavior="ChangeOnSplitterHover"
        GripperForeground="White">
    </controls:GridSplitter>
    <controls:GridSplitter
        Height="11"
        Background="LightGray"
        GripperCursor="Default"
        HorizontalAlignment="Stretch"
        Grid.Row="1"
        GripperForeground="White">
    </controls:GridSplitter>
</Grid>

它实际上是调整目标列或行的大小,而不是调整TextBlock的大小。但是视觉效果与您的描述相同。

如果您不喜欢此控件,则必须自己实现此功能。没有适合您的内置API。