xaml 相关问题

可扩展应用程序标记语言(XAML)是一种基于XML的声明式语言,用于在各种框架中初始化结构化值和对象。当问题是关于具有特定框架的XAML的使用时,还应该提供框架的标签,例如, [wpf](Windows Presentation Foundation),[silverlight],[windows-phone],[windows-store-apps](Windows 8商店应用),[win-universal-app],[xamarin.forms]或[工作流程 - 基础]

带有复选框的 WPF 组合框 - 绑定了错误的标题文本

我正在尝试按照此处给出的解决方案在组合框的标题上显示自定义文本: wpf-combobox-with-checkboxes-显示有关选中项目的信息 我取得了与

回答 1 投票 0

通过 .NET MAUI 中的可绑定属性将操作传递给自定义控件

主要思想: 我想将 Action 从 ViewModel 传递到 CustomControl,这样每当从 ViewModel 调用这些 Action 时,它就会自动调用 CustomCont 中的方法...

回答 1 投票 0

将不同的 DataContext 绑定到列表视图中的组合框

所以我尝试通过在组合框中选择不同的禁用游戏来交换启用的游戏。如何绑定 wpf xaml 中的元素来实现此目的? 我的视图模型: 公开课设置:

回答 1 投票 0

在应用程序启动时导航至登录页面/主页

我有一个非常标准的应用程序,如果用户未经过身份验证,则需要向用户显示登录页面,如果经过身份验证,则需要显示主页。 MainPage 是一个 Shell 应用程序,带有 Fl...

回答 1 投票 0

XAML 列定义宽度 * 不占用可用空间

我知道列定义在 XAML 中如何工作,但我想做一些事情但不知道如何做。 我想要这样的 4 列: 我知道列定义在 XAML 中如何工作,但我想做一些事情但不知道如何做。 我想要 4 列这样的: <Grid.ColumnDefinitions> <ColumnDefinition Width="110" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="80" /> <ColumnDefinition Width="80" /> </Grid.ColumnDefinitions> 列具有固定宽度 列必须占据所有可用空间(是的,它位于列之间,这正是问题所在) 列具有固定宽度 列具有固定宽度 第二列包含文本,问题是当文本太短时,第二列不会占用所有可用空间。它会自动变小,并且每行都会变小。我可以让它在文本块中使用此代码: MinWidth="2000" 但这不是一个好方法,因为当屏幕很大时这个数字可能太低。 这里是包含 4 列的整个列表视图: <ListView Grid.Row="1" Grid.ColumnSpan="4" ItemsSource="{Binding blabla}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"> <ListView.ItemTemplate> <DataTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="110" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="80" /> <ColumnDefinition Width="80" /> </Grid.ColumnDefinitions> <Image Height="110" Width="110" Grid.Column="0" Source="{Binding blabla}" HorizontalAlignment="Stretch" /> <TextBlock Text="{Binding blabla}" TextWrapping="Wrap" Margin="5,0,0,0" Grid.Column="1" FontSize="16" HorizontalAlignment="Stretch" TextAlignment="Left" FlowDirection="LeftToRight" MinWidth="2000" VerticalAlignment="Center" ScrollViewer.HorizontalScrollBarVisibility="Disabled" FontStretch="UltraCondensed"/> <TextBlock Grid.Column="2" TextWrapping="Wrap" Foreground="Black" Margin="5,0,0,0" HorizontalAlignment="Stretch" VerticalAlignment="Center"/> <Image Source="{Binding blabla, Converter={StaticResource ImgConverter}}" Grid.Column="3" Width="76" Height="76" HorizontalAlignment="Center" Stretch="None" VerticalAlignment="Center" Margin="0"/> </Grid> </DataTemplate> </ListView.ItemTemplate> </ListView> 您的布局定义良好,但错过了一个小问题,导致 Listviewitem 的内容向左留白,因为这是在默认的 ListViewItemStyle 中定义的,该默认 ListViewItemStyle 为 ListView Control 命名为“ItemContainerStyle”。 您需要做的就是添加我修改过的 ListViewItemStyle,以将内容在项目的所有可用空间中水平和垂直拉伸到您的资源中 <Style x:Key="StretchedListViewItemStyle" TargetType="ListViewItem"> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="VerticalContentAlignment" Value="Stretch" /> </Style> 然后将其设置为ListView的ItemContainerStyle,如下所示: <ListView Grid.Row="1" Grid.ColumnSpan="4" ItemsSource="{Binding blabla}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" ItemContainerStyle="{StaticResource StretchedListViewItemStyle}"/> 如果您正在使用 SharedSizeGroup 请参阅此问题 Grid 的 SharedSizeGroup 和 * 大小调整

回答 2 投票 0

WPF 数据网格中的网格线着色

如何设置 wpf 数据网格的网格线颜色?我可以使用 GridLinesVisibility 属性隐藏这些线,但我不知道如何为它们着色。我用行的边框刷尝试过......

回答 3 投票 0

通用类型的 MAUI 转换器内联语法

编辑:包含代码片段 MAUI 与 XAML 一样冗长,只是好奇是否有一种方法可以为具有通用类型的转换器编写更短的语法。看看下面的截图。我...

回答 1 投票 0

如何在 .NET MAUI 中动态地将 iOS 和 Android 上的标题 (ContentPage) 居中?

对于iOS,标题已经显示在中间,但是对于Android,它默认显示在左侧。我希望标题集中在两个平台上。为了实现这一目标,我正在使用 Sh...

回答 1 投票 0

iOS 显示与 Android .Net MAUI Telerik 不同

我有以下适用于 Android 和 iOS 的代码,但是当运行和显示它时,一切都变得不正常或移动,这是为什么? 我有以下适用于 Android 和 iOS 的代码,但是当运行和显示它时,一切都变得不正常或移动,这是为什么? <telerik:RadListView x:Name="listView" ItemsSource="{Binding SPagina}" Margin="10" BackgroundColor="LightGray"> <telerik:RadListView.ItemTemplate > <DataTemplate> <telerik:ListViewTemplateCell > <telerik:ListViewTemplateCell.View> <StackLayout Margin="0,0,0,10" BackgroundColor="LightGray"> <telerik:RadBorder BorderColor="#44185f" Margin="0,1,0,1" CornerRadius="5" BorderThickness="3" Background="White" Padding="7"> <Grid > <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="10"/> <RowDefinition Height="Auto"/> <RowDefinition Height="10"/> <RowDefinition Height="Auto"/> <RowDefinition Height="10"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.ColumnSpan="6" TextColor="#3A023A" Text="{Binding TituloPublicacion}" FontSize="16" FontAttributes="Bold" FontFamily="Arial"/> <Label Grid.Row="2" Grid.Column="0" Text="Tipo:" FontSize="14"/> <Label Grid.Row="2" Grid.Column="1" Text="{Binding Tipo}" FontSize="14"/> <Label Grid.Row="2" Grid.Column="2" Text="Año:" FontSize="14"/> <Label Grid.Row="2" Grid.Column="3" Text="{Binding Anio}" FontSize="14"/> <Label Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Text="Congreso/Revista:" FontSize="14"/> <Label Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="2" Text="{Binding RevistaCongreso}" FontSize="14"/> <Label Grid.Row="6" Grid.Column="0" Text="Autores: " FontSize="12"/> <Label Grid.Row="6" Grid.Column="1" Grid.ColumnSpan="6" Text="{Binding Autores}" FontSize="12"/> </Grid> </telerik:RadBorder> </StackLayout> </telerik:ListViewTemplateCell.View> </telerik:ListViewTemplateCell> </DataTemplate> </telerik:RadListView.ItemTemplate> 问题是两个设备上的视图看起来不同。 我放置了以下示例图像。 安卓: iOS: 为什么会出现这种情况? ... RadListView 是他们的 ListView 版本,请改用他们的 CollectionView :https://www.telerik.com/maui-ui/collectionview <telerik:RadCollectionView x:Name="collectionView" ItemsSource="{Binding SPagina}" Margin="10" BackgroundColor="LightGray">

回答 1 投票 0

根据条件显示 XAML

上下文是我有一个列表框,它输出具有相当多样式的项目(比我放在这里的多)...我去使用 DataTemplateSelector 来显示一个图像或另一个基于

回答 2 投票 0

ContentTemplate 不适用于RadioButton

我的 XAML 文件中有这段代码,据说应该为页面的 RadioButtons 设置样式,这几乎是我在 StackOverflow 上找到的一种方法: <

回答 1 投票 0

WPF DatePicker 数据网格过滤器

我想按日期过滤数据网格中的数据。将输入开始日期和结束日期,并返回这些日期之间的数据。 我在数据库中保存日期的数据类型是

回答 1 投票 0

Avalonia DataContext 在后面的代码中为空

我有以下应用程序结构: 浏览次数: 主窗口 主视图 查看1 视图2 视图模型: 主视图模型 主窗口: 我有以下应用程序结构: 浏览次数: 主窗口 主视图 查看1 查看2 查看模型: 主视图模型 主窗口: <Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="using:Frontend.ViewModels" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:views="clr-namespace:Frontend.Views" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="Frontend.Views.MainWindow" Icon="/Assets/avalonia-logo.ico" Title="Frontend"> <views:MainView/> </Window> 主视图: <UserControl xmlns="https://github.com/avaloniaui" 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:vm="clr-namespace:Frontend.ViewModels" xmlns:views="clr-namespace:Frontend.Views" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="Frontend.Views.MainView" x:DataType="vm:MainViewModel"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="0.3*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="0.4*"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <views:View1 Grid.Row="0" Grid.Column="0"/> <views:View2 Grid.Row="1" Grid.Column="1"/> </Grid> </UserControl> 视图1: <UserControl xmlns="https://github.com/avaloniaui" 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:vm="clr-namespace:Frontend.ViewModels" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="Frontend.Views.View1" x:DataType="vm:MainViewModel"> <DataGrid Name="TableDataGrid" AutoGenerateColumns="False" IsReadOnly="True" GridLinesVisibility="All" CanUserReorderColumns="True" CanUserResizeColumns="True" CanUserSortColumns="True" BorderThickness="1" BorderBrush="Gray" VerticalAlignment="Center" HorizontalAlignment="Center"/> </UserControl> 在 View1 的代码隐藏中,我想更改 DataGrid,如下所示: using Avalonia.Controls; using Avalonia.Data; using Frontend.ViewModels; using System.Data; namespace Frontend.Views; public partial class View1 : UserControl { public View1() { InitializeComponent(); var viewModel = DataContext as MainViewModel; TableDataGrid.ItemsSource = viewModel.TableData.DefaultView; foreach (DataColumn x in viewModel.TableData.Columns) { if (x.DataType == typeof(bool)) { TableDataGrid.Columns.Add(new DataGridCheckBoxColumn { Header = x.ColumnName, Binding = new Binding($"Row.ItemArray[{x.Ordinal}]") }); } else { TableDataGrid.Columns.Add(new DataGridTextColumn { Header = x.ColumnName, Binding = new Binding($"Row.ItemArray[{x.Ordinal}]") }); } } } } 问题在于 DataContext 是 null。根据 Avalonia 文档,任何控件都将继承其父级的 DataContext,如果它们没有自己的定义。问题似乎是正在创建视图并稍后分配上下文,因为在 View2 中我绑定了 MainViewModel 的属性,并且这些属性工作正常,而无需我设置任何数据上下文。 所以,我的问题是 - 如何使 DataGrid 可以通过代码隐藏使用 DataContext 中的数据进行更新? 在这种情况下,您将需要处理 DataContextChanged 和 Initialized 事件。 我正在用手机编写示例代码,因此可能会出现一些小错误。 public View1() { DataContextChanged += OnDataContextChanged; InitializeComponent(); } private void OnDataContextChanged(object sender, EventArgs e) { if (IsInitialized) { var viewModel = DataContext as MainViewModel; TableDataGrid.ItemsSource = viewModel.TableData.DefaultView; foreach (DataColumn x in viewModel.TableData.Columns) { if (x.DataType == typeof(bool)) { TableDataGrid.Columns.Add(new DataGridCheckBoxColumn { Header = x.ColumnName, Binding = new Binding($"Row.ItemArray[{x.Ordinal}]") }); } else { TableDataGrid.Columns.Add(new DataGridTextColumn { Header = x.ColumnName, Binding = new Binding($"Row.ItemArray[{x.Ordinal}]") }); } } } else { Initialized += delegate { OnDataContextChanged(sender, e); }; } } 但我建议您监听 DataGrid.ItemsSource 属性的变化,并在变化时调整列。

回答 1 投票 0

.NET MAUI 全尺寸背景图像(覆盖元素)

由于 .NET MAUI 是 Xamarin 的继承者,我正在尝试将 Xamarin 布局移植到新的 Maui 版本。 relativelayout 已从毛伊岛删除。我使用relativelayout将GUI定位到...

回答 3 投票 0

如何解决listview(+content : gridview) Style.Trigger不起作用的问题

这是C#/xaml WPF代码,我想使用materialdesign,使用触发器来更改背景 但我无法解决 Styl.Triggers 不起作用的问题。请修复并给我一个解决方案 主要...

回答 1 投票 0

在鼠标悬停时设置 TreeViewItem 子级的样式

我有一个树视图: 浅蓝色 <p>我有树视图:</p> <pre><code>&lt;Window.Resources&gt; &lt;VisualBrush x:Key=&#34;HighlightBrush&#34;&gt;LightBlue&lt;/VisualBrush&gt; &lt;Style x:Key=&#34;RectangleStyle&#34; TargetType=&#34;Rectangle&#34;&gt; &lt;Setter Property=&#34;Fill&#34; Value=&#34;{StaticResource HighlightBrush}&#34;/&gt; &lt;/Style&gt; &lt;/Window.Resources&gt; &lt;TreeView Grid.Column =&#34;0&#34; Name=&#34;MyTreeView&#34;&gt; &lt;TreeView.ItemContainerStyle&gt; &lt;Style TargetType=&#34;{x:Type TreeViewItem}&#34;&gt; &lt;Style.Triggers&gt; &lt;Trigger Property=&#34;IsMouseOver&#34; Value=&#34;True&#34;&gt; &lt;Setter Property=&#34;Background&#34; Value=&#34;Green&#34; /&gt; &lt;!-- Set property &#34;Visibility&#34; of child Rectangle &#34;Hb&#34; to &#34;visible --&gt; &lt;/Trigger&gt; &lt;/Style.Triggers&gt; &lt;/Style&gt; &lt;/TreeView.ItemContainerStyle&gt; &lt;d:TreeView.ItemsSource &gt; &lt;x:Array Type=&#34;system:String&#34;&gt; &lt;system:String&gt;First element&lt;/system:String&gt; &lt;system:String&gt;Second element&lt;/system:String&gt; &lt;/x:Array&gt; &lt;/d:TreeView.ItemsSource&gt; &lt;TreeView.ItemTemplate&gt; &lt;HierarchicalDataTemplate DataType=&#34;{x:Type system:String}&#34; &gt; &lt;StackPanel Orientation=&#34;Horizontal&#34;&gt; &lt;TextBlock Text=&#34;{Binding .}&#34; d:Text=&#34;{Binding .}&#34; /&gt; &lt;Rectangle x:Name=&#34;Hb&#34; Width=&#34;100000&#34; Margin=&#34;-10000,0,0,0&#34; Panel.ZIndex=&#34;-1&#34; Visibility=&#34;Hidden&#34; Style=&#34;{DynamicResource RectangleStyle}&#34; /&gt; &lt;/StackPanel&gt; &lt;/HierarchicalDataTemplate&gt; &lt;/TreeView.ItemTemplate&gt; &lt;/TreeView&gt; </code></pre> <p>我想出了如何在鼠标悬停时设置 <pre><code>TreeViewItem</code></pre> 的背景。 如何在鼠标悬停在 <pre><code>Hb</code></pre> 上时将作为 <pre><code>TreeViewItem</code></pre> 子级的矩形 <pre><code>visible</code></pre> 的可见性设置为 <pre><code>TreeViewItem</code></pre>? </p>注意:这种突出显示当前项目的方法的想法来自<p>https://stackoverflow.com/a/1627451/2484903<a href="https://stackoverflow.com/a/1627451/2484903">。</a> </p> </question> <answer tick="false" vote="0">您可以将 Rectangle 的 <p><code>Visibility</code><pre> 绑定到 TreeViewItem 的 </pre><code>IsMouseOver</code><pre> 属性,如下所示:</pre> </p><code>&lt;Rectangle x:Name=&#34;Hb&#34; ... Visibility=&#34;{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=TreeViewItem}, Converter={StaticResource BooleanToVisibilityConverter}}&#34; /&gt; </code><pre> </pre>使用 BooleanToVisibilityConverter 资源,例如在窗口.资源中。填充画笔也应该是 SolidColorBrush:<p> </p><code>&lt;Window.Resources&gt; &lt;BooleanToVisibilityConverter x:Key=&#34;BooleanToVisibilityConverter&#34;/&gt; &lt;SolidColorBrush x:Key=&#34;HighlightBrush&#34;&gt;LightBlue&lt;/SolidColorBrush&gt; &lt;Style x:Key=&#34;RectangleStyle&#34; TargetType=&#34;Rectangle&#34;&gt; &lt;Setter Property=&#34;Fill&#34; Value=&#34;{StaticResource HighlightBrush}&#34;/&gt; &lt;/Style&gt; &lt;/Window.Resources&gt; </code><pre> </pre>请注意,使矩形可见会将 TreeViewItem 的内容区域的宽度更改为 99000。不确定这是否有意义,或者您是否错误地定义了宽度和边距。<p> </p> </answer></body>

回答 0 投票 0

MAUI - 不需要的按钮背景颜色

我有一个 dotnet 8 MAUI IOS 应用程序,它有一个记录用户的视图。我最近将应用程序从 dotnet 7 更新到了 8,现在我在此页面上遇到了一些样式问题。暂停和重置按钮...

回答 1 投票 0

在 WinUI3 的 ListView 中使用触摸板时,PointerWheelChanged 未触发

我使用 winUI3 构建我的应用程序,并在 ListView 中使用 PointerWheelChanged 事件来捕获鼠标滚轮,但它仅适用于鼠标设备,不适用于触摸板。 谢谢

回答 2 投票 0

从 XAML 中的 *.resx 文件获取值

是否可以将资源文件中的一些值直接添加到 XAML 标记中?或者为了本地化,我们总是必须在 *.cs 文件中制作类似的内容: txtMessage.Text = Messages.WarningUserM...

回答 7 投票 0

我怎样才能实现这种特殊的调整大小行为?

我试图在应用程序的页脚中实现某种大小调整行为,该应用程序具有以下通用 xaml 结构: 我试图在应用程序的页脚中实现某种大小调整行为,该应用程序具有以下通用 xaml 结构: <Window> <Window.DataContext> <local:MainWindowViewModel /> </Window.DataContext> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> ... <Grid Grid.Row="3" Grid.Column="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <CheckBox Grid.Column="0" VerticalContentAlignment="Center" VerticalAlignment="Center" Padding="2,0" Content="Checkbox" /> <TextBlock Grid.Column="1" Margin="10,0,0,0" VerticalAlignment="Center" Text="Log Folder: " /> <TextBox Grid.Column="2" Height="24" VerticalAlignment="Center" VerticalContentAlignment="Center" Padding="2" Focusable="False" IsReadOnly="True" Cursor="Hand" Text="{Binding LogFolder}" /> <Button Grid.Column="3" Height="24" Width="24" Margin="4,0" VerticalAlignment="Center" Command="{Binding SelectFolderCommand}"> <Button.Content> <Image Width="16" Height="16" Source="/Images/Refresh.png" /> </Button.Content> </Button> <Button Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Right" Content=" Button " /> </Grid> </Grid> </Window> 在页脚中,如果没有足够的水平空间来显示整个路径,文本框将被截断: 应用页脚 当空间足够时,文本框会水平扩展以填充可用空间: 应用程序页脚已调整大小 虽然需要前一种行为,但我希望在后一种情况下文本框不会扩展以填充整个可用空间。相反,我希望文本框扩展得足以显示整个路径,然后让左侧按钮保持与其相邻,两个按钮之间出现任何多余的空间,就像在这个模型中一样: 所需行为模型 我尝试将文本框和左按钮包装在嵌套网格中,如下所示: <Grid Grid.Row="3" Grid.Column="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <CheckBox Grid.Column="0" VerticalContentAlignment="Center" VerticalAlignment="Center" Padding="2,0" Content="Checkbox" /> <TextBlock Grid.Column="1" Margin="10,0,0,0" VerticalAlignment="Center" Text="Log Folder: " /> <Grid Grid.Column="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <TextBox Grid.Column="0" Height="24" VerticalAlignment="Center" VerticalContentAlignment="Center" Padding="2" Focusable="False" IsReadOnly="True" Cursor="Hand" Text="{Binding LogFolder}" /> <Button Grid.Column="1" Height="24" Width="24" Margin="4,0" HorizontalAlignment="Left" VerticalAlignment="Center" Command="{Binding SelectFolderCommand}"> <Button.Content> <Image Width="16" Height="16" Source="/Images/Refresh.png" /> </Button.Content> </Button> </Grid> <Button Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Right" Content=" Button " /> </Grid> 虽然当空间足够时,这确实实现了所需的行为,但当空间不足时,左侧按钮就会溢出: 左键超出范围的不良行为 除此之外,我还尝试了许多其他排列,例如交换网格列的 Auto 和 * 宽度、将内容包装在 StackPanel 中、将内容停靠在 DockPanel 中以及添加更多网格,但我只能实现一种前面描述的两组行为。 IE。当窗口较窄时,左侧按钮不会溢出,但当窗口较宽时,文本框会无限制地扩展,或者当窗口较宽时,文本框的扩展受到限制,但当窗口较窄时,左侧按钮会溢出. 我正在寻找的行为可以实现吗?首选纯 xaml 答案,但如果我只能通过代码隐藏、视图模型或转换器中的代码来实现这一点,那就这样吧。 您可以再添加一个 ColumnDefinition 并且不要在其中放置任何元素: <Grid Grid.Row="3" Grid.Column="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <!-- left empty--> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <CheckBox Grid.Column="0" VerticalContentAlignment="Center" VerticalAlignment="Center" Padding="2,0" Content="Checkbox" /> <TextBlock Grid.Column="1" Margin="10,0,0,0" VerticalAlignment="Center" Text="Log Folder: " /> <TextBox Grid.Column="2" Height="24" VerticalAlignment="Center" VerticalContentAlignment="Center" Padding="2" Focusable="False" IsReadOnly="True" Cursor="Hand" Text="{Binding LogFolder}" /> <Button Grid.Column="3" Height="24" Width="24" Margin="4,0" VerticalAlignment="Center" Command="{Binding SelectFolderCommand}"> <Image Width="16" Height="16" Source="/Images/Refresh.png" /> </Button> <!-- skip * column, button is in column 5--> <Button Grid.Column="5" VerticalAlignment="Center" HorizontalAlignment="Right" Content=" Button " /> </Grid>

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.