【问题标题】:Resizing a control in Windows store app在 Windows 应用商店应用中调整控件的大小
【发布时间】:2014-01-28 19:05:24
【问题描述】:

我只是想知道如何让用户在运行时通过在 Windows Store App 中拖动它的角来调整 TextBox 控件的大小。不太重要的是,调整所有控件的大小是否使用相同的技术?

感谢和问候!

【问题讨论】:

标签: windows-8 windows-store-apps


【解决方案1】:

这里我只给你文本框,其他的都是一样的。

XAML 代码

<Page>
    <Canvas Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <Grid x:Name="grdTextbox" Canvas.Left="300" Canvas.Top="300" Height="40" Width="200">
            <Thumb x:Name="ThumbBottomRight" Background="White" Height="10" Width="10" HorizontalAlignment="Right" DragDelta="ThumbBottomRight_DragDelta" VerticalAlignment="Bottom"/>
            <Thumb x:Name="ThumbBottomLeft" Background="White" Height="10" Width="10" HorizontalAlignment="Left" DragDelta="ThumbBottomLeft_DragDelta" VerticalAlignment="Bottom"/>
            <Thumb x:Name="ThumbTopRight" Background="White" Height="10" Width="10"  HorizontalAlignment="Right" DragDelta="ThumbTopRight_DragDelta" VerticalAlignment="Top"/>
            <Thumb x:Name="ThumbTopLeft" Background="White" Height="10" Width="10" HorizontalAlignment="Left" DragDelta="ThumbTopLeft_DragDelta"  VerticalAlignment="Top"/>
            <TextBox Margin="5" Text="This is resizable textbox"/>
        </Grid>
    </Canvas>
</Page>

C#代码

private void ThumbTopLeft_DragDelta(object sender, DragDeltaEventArgs e)
{
    grdTextbox.Width -= e.HorizontalChange;
    grdTextbox.Height -= e.VerticalChange;
    Canvas.SetLeft(grdTextbox, Canvas.GetLeft(grdTextbox) + e.HorizontalChange);
    Canvas.SetTop(grdTextbox, Canvas.GetTop(grdTextbox) + e.VerticalChange);
}

private void ThumbTopRight_DragDelta(object sender, DragDeltaEventArgs e)
{
    grdTextbox.Width += e.HorizontalChange;
    grdTextbox.Height -= e.VerticalChange;
    Canvas.SetTop(grdTextbox, Canvas.GetTop(grdTextbox) + e.VerticalChange);
}

private void ThumbBottomLeft_DragDelta(object sender, DragDeltaEventArgs e)
{
    grdTextbox.Width -= e.HorizontalChange;
    grdTextbox.Height += e.VerticalChange;
    Canvas.SetLeft(grdTextbox, Canvas.GetLeft(grdTextbox) + e.HorizontalChange);
}

private void ThumbBottomRight_DragDelta(object sender, DragDeltaEventArgs e)
{
    grdTextbox.Width += e.HorizontalChange;
    grdTextbox.Height += e.VerticalChange;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 2016-09-04
    相关资源
    最近更新 更多