通用 Windows 平台 (UWP)
一个 Microsoft 平台,用于生成和发布适用于 Windows 桌面设备的应用。
49 个问题
你好
我有一个带有 ReadOnly 文本框的网格,这些文本框处于拉伸对齐状态。这些只读文本框覆盖整个网格区域。
我想要一种效果,只需拖动其中一个文本框即可拖动整个网格。
我可以通过设置grid.CranDrag(TRUE); 来拖动网格
但我只能将它从空的网格区域拖动,但我的所有网格元素都必须处于拉伸对齐状态,这将覆盖整个网格区域而不会留下任何空的网格区域。如何通过拖动其子元素来拖动整个网格?[就像拖动表格行一样,其中网格是单行,文本框是该行中的单元格]
如果你能帮助我实现这一目标,那将是有很大帮助的。
谢谢
此问题由WinUI3: Drag Grid with Streached elements - Microsoft Q&A而来.
你好
这里有一个解决方法。
Canvas.ZIndexProperty,
实际的文本框位于网格下Page.xaml
<Canvas Background="Red" Width="640" Height="640" CanDrag="True">
<Grid x:Name="gridContainer" CanDrag="True" Width="100" Height="80"
BorderThickness="1" BorderBrush="Black" Canvas.Top="30" Canvas.Left="30" Background="Transparent"
DragStarting="gridContainer_DragStarting" DropCompleted="gridContainer_DropCompleted" >
<TextBox x:Name="temptextbox" CanDrag="True" IsReadOnly="True"/>
</Grid>
<TextBox x:Name="textbox" CanDrag="True" IsReadOnly="True" Canvas.Top="30" Canvas.Left="30"
Text="hello" Width="100" Height="80" >
</TextBox>
</Canvas>
Page.xaml.cs
public MainWindow()
{
this.InitializeComponent();
//set textbox under the gridContainer
gridContainer.SetValue(Canvas.ZIndexProperty, 2);
textbox.SetValue(Canvas.ZIndexProperty, 1);
temptextbox.Visibility = Visibility.Collapsed;
}
private void gridContainer_DragStarting(UIElement sender, DragStartingEventArgs args)
{
temptextbox.Width = textbox.Width;
temptextbox.Height = textbox.Height;
temptextbox.Text = textbox.Text;
temptextbox.Visibility = Visibility.Visible;
}
private void gridContainer_DropCompleted(UIElement sender, DropCompletedEventArgs args)
{
temptextbox.Visibility = Visibility.Collapsed;
}
谢谢。