悬浮在wpf .net核心应用程序中程序右侧的浮动控制按钮

如何解决悬浮在wpf .net核心应用程序中程序右侧的浮动控制按钮

我目前正在开发一款应在整个程序窗口中显示Image的软件。 Button应该浮在顶部,以控制软件。

到目前为止,该应用程序如下所示:

enter image description here

浮动ButtonZIndex配合使用非常好,但问题是它要么卡在左上角,要么固定在一个静态位置。

该想法应坚持正确的程序边界。调整程序的大小后,它仍应坚持正确的边界。 我尝试了“水平对齐”,但完全没有效果

到目前为止,这是xaml:

<Window x:Class="TarkovMapper_2._0.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:TarkovMapper_2._0"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
   <Grid HorizontalAlignment="Stretch" Width="Auto" Height="Auto" VerticalAlignment="Stretch">
      <Image Grid.ZIndex="1" x:Name="Map_Image" HorizontalAlignment="Left" VerticalAlignment="Top"/>
      <DockPanel Grid.ZIndex="2" Width="Auto" Height="Auto" HorizontalAlignment ="Right" VerticalAlignment="Top" >
         <Button DockPanel.Dock="Right" Grid.ZIndex="2" x:Name="Edit_Button" Content="Button" HorizontalAlignment="Right" VerticalAlignment="Center" Width="50" Height="49"/>
      </DockPanel>
   </Grid>
</Window>

看来DockPanel是正确的方法,但是DockPanel本身在自动模式下的大小与按钮的大小相同(然后自身粘在顶部/左侧,或者我可以静态调整其大小,但然后它不会随应用程序调整大小。

解决方法

您可以使用另一个Grid来做到这一点,该Button的一列包含<Grid> <Image x:Name="Map_Image"/> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <Button Grid.Column="1" x:Name="Edit_Button" Content="Button" Width="50" Height="49"/> </Grid> </Grid> 和您想要以重叠显示在窗口右边缘的其他控件。

ZIndex

您在这里不需要Grid,因为内部Grid是父Grid的最后一个孩子,它将自动显示在顶部。覆盖Button有两列,其中第二列的大小为其内容(smart-open)的大小,而第一列将占用剩余的空间。

还有许多其他选项可以创建所需的布局,但这取决于您要实现的目标。根据您的描述,这种方法似乎很合适。

,

添加网格列并分配它们。

<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="*"/>
  </Grid.ColumnDefinitions>
  <Image Grid.Column="0" />
  <Button Grid.Column="1" HorizontalAlignment="Right">...</Button>
</Grid>

或者有Dock,可以为您解决问题吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?