xaml 相关问题

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

如何从最初绑定到的视图模型访问内容页面的控件?

我想要做的是在视图模型文件中创建和写入所有方法,并且仅将代码放置在自动生成的函数的代码隐藏文件中,例如

回答 1 投票 0

使用鼠标和触摸在 ScrollViewer 中的 Canvas 中绘制矩形

我在 ScrollViewer 中得到了一个 Canvas。 我在 ScrollViewer 中有一个 Canvas。 <ScrollViewer x:Name="svWorkSpace" Visibility="Collapsed" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Tapped="svWorkSpace_Tapped" PointerPressed="svWorkSpace_PointerPressed" PointerMoved="svWorkSpace_PointerMoved" PointerReleased="svWorkSpace_PointerReleased"> <Grid> <Image x:Name="cvWorkImage"/> <Canvas x:Name="cvWorkSpace"/> </Grid> </ScrollViewer> 在 PointerPressed 代码中,我捕获起点,在 PointerMoved 代码中,我在指针移动时绘制一个矩形(也删除我移动的尾随矩形,仅在画布中保留一个矩形。我使用以下方法实现矩形大小调整效果这个方法)。 PointerReleased 将接受最后一个矩形。 在支持触摸的设备中使用鼠标一切正常,但不使用手指。当我移动手指时图像就会滚动。 尝试将代码移至 Canvas 中,如下所示。无法同时使用鼠标和触摸绘制矩形。 <ScrollViewer x:Name="svWorkSpace" Visibility="Collapsed" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"> <Grid> <Image x:Name="cvWorkImage"/> <Canvas x:Name="cvWorkSpace" Tapped="svWorkSpace_Tapped" PointerPressed="svWorkSpace_PointerPressed" PointerMoved="svWorkSpace_PointerMoved" PointerReleased="svWorkSpace_PointerReleased"/> </Grid> </ScrollViewer> 请给我指出正确的方向。 当 ScrollViewer 接收到基于触摸的 PointerPressed 时,它会转向直接操作以响应地处理平移和缩放。直接操作捕获指针输入,因此 Canvas 的 PointerMoved 和 PointerReleased 事件不会触发。没有事件 -> 没有绘图。 ScrollViewer 使用鼠标平移或缩放,因此鼠标事件可以到达画布。 假设您总是希望 Canvas 处理指针事件而不是滚动(也许 Grid 中还有其他控件使用 ScrollViewer),您可以将 Canvas 的 ManipulationMone 设置为 all 以让 Canvas 块上的触摸触摸滚动查看器 <Canvas x:Name="cvWorkSpace" Background={ThemeResource WorkSpaceBackgroundBrush} Tapped="svWorkSpace_Tapped" ManipulationMode="All" PointerPressed="svWorkSpace_PointerPressed" PointerMoved="svWorkSpace_PointerMoved" PointerReleased="svWorkSpace_PointerReleased"/> 如果您只是有时希望 Canvas 处理指针事件,那么您可以将 ManipulationMode 切换回 System,让 ScrollViewer 处理它。如果您想通过单点触摸在画布上绘图并通过多点触摸平移/缩放,那么您可以处理画布上的操纵事件以平移和缩放。 还要确保画布不透明,并让指针事件传递到其后面的任何内容。如果你想在图像上绘图,你可以设置一个 ImageBrush,将图像作为 Canvas 的背景,而不是使用单独的 Image 控件。 10年前的一个答案现在对我有帮助。非常感谢。

回答 2 投票 0

如何根据条件更改 ItemControl 项目的前景

我有这门课: 公共类 ShippingMethodMap { 公共字符串 ShippingMethod { 获取;放; } 公共整数?方法 ID { 获取;放; } 公共 bool IsManaged { 获取;放; } 公共布尔 IsV...

回答 1 投票 0

WPF:在后面的代码中创建到嵌套属性的绑定

我的 xaml 文件中有以下多重绑定: 我的 xaml 文件中有以下多重绑定: <MyControl:CommandParameter> <MultiBinding Converter="{commonConverters:MultiBindingConverter}"> <Binding Path="CurrentItem.Id" /> <Binding Path="SelectedItem.Count" /> </MultiBinding> </Mycontrol:CommandParameter> 如何在我的视图模型中定义这个多重绑定? 或者,当这不可能时,如何在我的视图模型中定义每次 Id 或 Count 更改时触发命令的 CanExecute? 另一个困难是CurrentItem和SelectedItem在初始化后可以为null,并且在使用应用程序时会被初始化。 谢谢! 要告诉 WPF 您的命令可能已变为(不可)可执行,您可以使用 ICommand.RaiseCanExecuteChanged 事件。它将使 WPF 调用您命令的 CanExecute 方法。 由于您没有提供 ViewModel 和 SelectedItem/CurrentItem 的代码,以下示例可能不代表您的用例,但它会给您总体思路。 考虑使用以下自定义命令类: public class MyCommand : ICommand { public EventHandler CanExecuteChanged; public void Execute(object parameter) { // do some stuff } public bool CanExecute(object parameter) { // determine if command can be executed } public void RaiseCanExecuteChanged() { this.CanExecuteChanged?.Invoke(this, EventArgs.Empty); } } 在你的 ViewModel 中你可以得到类似这样的东西 public class MyViewModel { private int _id; public MyCommand SomeCommand { get; set; } public int Id { get => _id; set { // do other stuff (ie: property changed notification) SomeCommand.RaiseCanExecuteChanged(); } } }

回答 1 投票 0

如何在Style.Trigger中为Background属性添加不透明度?

我想更改鼠标悬停时元素的背景颜色。 我有以下代码: <Setter Property="</desc> <question vote="0"> <p>我想在鼠标悬停时更改元素的背景颜色。</p> <p>我有以下代码:</p> <pre><code>&lt;Border.Style&gt; &lt;Style TargetType=&#34;Border&#34;&gt; &lt;Setter Property=&#34;Background&#34; Value=&#34;Transparent&#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;White&#34; /&gt; &lt;/Trigger&gt; &lt;/Style.Triggers&gt; &lt;/Style&gt; &lt;/Border.Style&gt; </code></pre> <p>设置背景颜色时,<pre><code>Trigger</code></pre>的<pre><code>Border.Style</code></pre>部分没有不透明度属性。我不想要 100% 白色背景。</p> <p>如何添加不透明度?</p> </question> <answer tick="true" vote="1"> <p>最简单的(我完全忘记了!)是将alpha通道添加到RGB颜色(ARGB格式),如下所示:</p> <pre><code>Background=&#34;#DD0000FF&#34; </code></pre> <h2>其他方式</h2> <p>有 <pre><code>Opacity</code></pre> 属性可供您使用。</p> <p>为了在颜色上设置<pre><code>Opacity</code></pre>,您可以定义<pre><code>SolidColorBrush</code></pre>并将<pre><code>Opacity</code></pre>属性设置为适当的值,然后在背景中使用它。</p> <p>以下是如何在 XAML 中触发对多个属性的更改,并定义具有不透明度的颜色</p> <pre><code>&lt;Border&gt; &lt;Border.Resources&gt; &lt;SolidColorBrush x:Key=&#34;WindowBrush&#34; Opacity=&#34;0.5&#34; Color=&#34;Brown&#34; /&gt; &lt;/Border.Resources&gt; &lt;Border.Style&gt; &lt;Style TargetType=&#34;Border&#34;&gt; &lt;Setter Property=&#34;Background&#34; Value=&#34;{StaticResource ResourceKey=WindowBrush}&#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;White&#34; /&gt; &lt;/Trigger&gt; &lt;Trigger Property=&#34;IsMouseOver&#34; Value=&#34;True&#34;&gt; &lt;Setter Property=&#34;Opacity&#34; Value=&#34;0.5&#34; /&gt; &lt;/Trigger&gt; &lt;/Style.Triggers&gt; &lt;/Style&gt; &lt;/Border.Style&gt; &lt;/Border&gt; </code></pre> <p><strong>更新</strong></p> <p>没有静态资源:</p> <pre><code>&lt;Style.Triggers&gt; &lt;Trigger Property=&#34;IsMouseOver&#34; Value=&#34;True&#34;&gt; &lt;Setter Property=&#34;Background&#34;&gt; &lt;Setter.Value&gt; &lt;SolidColorBrush Opacity=&#34;0.5&#34; Color=&#34;White&#34;/&gt; &lt;/Setter.Value&gt; &lt;/Setter&gt; &lt;/Trigger&gt; &lt;/Style.Triggers&gt; </code></pre> </answer> </body></html>

回答 0 投票 0

如何更改 WPF 复选框勾选的颜色?

我想将 WPF 复选框中的勾号颜色从黑色更改为白色。我尝试在 CheckBox 声明中执行此操作,如下所示: 我想将 WPF CheckBox 中的勾号颜色从黑色更改为白色。我尝试在 CheckBox 声明中这样做: <CheckBox Background="black" Foreground="White" BorderBrush="#262626"/> 背景和边框成功更改,但刻度线本身未更改。 您可以从 MSDN 服务器复制整个复选框样式,但由于在任何 WPF 项目开始时使用它都非常令人困惑,因此我将(在我看来)必要的位编译成一种更容易理解的样式: <Style TargetType="{x:Type CheckBox}"> <Setter Property="Background" Value="White" /> <Setter Property="BorderBrush" Value="#FF262E34"/> <!-- your color here --> <Setter Property="Foreground" Value="HotPink"/> <Setter Property="BorderThickness" Value="1"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type CheckBox}"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" > <Border BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" Width="15" Height="15"> <Grid> <Grid Background="{TemplateBinding Foreground}" Margin="1" Visibility="Collapsed" Name="nullBlock"/> <Path Stretch="Uniform" Width="15" Height="10" Fill="{TemplateBinding Foreground}" Name="eliCheck" Data="F1 M 9.97498,1.22334L 4.6983,9.09834L 4.52164,9.09834L 0,5.19331L 1.27664,3.52165L 4.255,6.08833L 8.33331,1.52588e-005L 9.97498,1.22334 Z " Visibility="Collapsed"/> </Grid> </Border> <TextBlock Margin="5,0,0,0" VerticalAlignment="Center" Foreground="White" Text="{TemplateBinding Content}"></TextBlock> </StackPanel> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="LightGray" /> </Trigger> <Trigger Property="IsPressed" Value="True"> <Setter Property="Background" Value="#FF9C9E9F" /> </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Background" Value="LightGray" /> <Setter Property="Foreground" Value="Gray" /> <Setter Property="BorderBrush" Value="Gray"/> <Setter TargetName="eliCheck" Property="Opacity" Value="0.5" /> </Trigger> <Trigger Property="IsChecked" Value="True"> <Setter TargetName="eliCheck" Property="Visibility" Value="Visible"></Setter> </Trigger> <Trigger Property="IsChecked" Value="{x:Null}"> <Setter TargetName="nullBlock" Property="Visibility" Value="Visible"></Setter> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> 只需将此样式复制到 Window.Resources 或您认为合适的任何其他位置即可,或者直接将其粘贴到复选框样式属性中。 CheckBox控件具有各种视觉状态,背景、边框和选项标记字形具有不同的颜色。您可以参考文档了解所需的部件和视觉状态。 如果要编辑颜色,则必须更改默认样式和控件模板。您可以使用 Blend 或 Visual Studio 提取它。以下是默认模板。您需要做的是将这些资源复制到范围内的资源字典中,例如应用程序资源并调整 SolidColorBurshes。<SolidColorBrush x:Key="OptionMark.Static.Background" Color="#FFFFFFFF"/> <SolidColorBrush x:Key="OptionMark.Static.Border" Color="#FF707070"/> <SolidColorBrush x:Key="OptionMark.Static.Glyph" Color="#FF212121"/> <SolidColorBrush x:Key="OptionMark.MouseOver.Background" Color="#FFF3F9FF"/> <SolidColorBrush x:Key="OptionMark.MouseOver.Border" Color="#FF5593FF"/> <SolidColorBrush x:Key="OptionMark.MouseOver.Glyph" Color="#FF212121"/> <SolidColorBrush x:Key="OptionMark.Pressed.Background" Color="#FFD9ECFF"/> <SolidColorBrush x:Key="OptionMark.Pressed.Border" Color="#FF3C77DD"/> <SolidColorBrush x:Key="OptionMark.Pressed.Glyph" Color="#FF212121"/> <SolidColorBrush x:Key="OptionMark.Disabled.Background" Color="#FFE6E6E6"/> <SolidColorBrush x:Key="OptionMark.Disabled.Border" Color="#FFBCBCBC"/> <SolidColorBrush x:Key="OptionMark.Disabled.Glyph" Color="#FF707070"/> <Style x:Key="FocusVisual"> <Setter Property="Control.Template"> <Setter.Value> <ControlTemplate> <Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeDashArray="1 2" StrokeThickness="1" /> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="OptionMarkFocusVisual"> <Setter Property="Control.Template"> <Setter.Value> <ControlTemplate> <Rectangle Margin="14,0,0,0" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeDashArray="1 2" StrokeThickness="1" /> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="CheckBoxStyle" TargetType="{x:Type CheckBox}"> <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}" /> <Setter Property="Background" Value="{StaticResource OptionMark.Static.Background}" /> <Setter Property="BorderBrush" Value="{StaticResource OptionMark.Static.Border}" /> <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" /> <Setter Property="BorderThickness" Value="1" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type CheckBox}"> <Grid x:Name="templateRoot" Background="Transparent" SnapsToDevicePixels="True"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Border x:Name="checkBoxBorder" Margin="1" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> <Grid x:Name="markGrid"> <Path x:Name="optionMark" Margin="1" Data="F1 M 9.97498,1.22334L 4.6983,9.09834L 4.52164,9.09834L 0,5.19331L 1.27664,3.52165L 4.255,6.08833L 8.33331,1.52588e-005L 9.97498,1.22334 Z " Fill="{StaticResource OptionMark.Static.Glyph}" Opacity="0" Stretch="None" /> <Rectangle x:Name="indeterminateMark" Margin="2" Fill="{StaticResource OptionMark.Static.Glyph}" Opacity="0" /> </Grid> </Border> <ContentPresenter x:Name="contentPresenter" Grid.Column="1" Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Focusable="False" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </Grid> <ControlTemplate.Triggers> <Trigger Property="HasContent" Value="true"> <Setter Property="FocusVisualStyle" Value="{StaticResource OptionMarkFocusVisual}" /> <Setter Property="Padding" Value="4,-1,0,0" /> </Trigger> <Trigger Property="IsMouseOver" Value="true"> <Setter TargetName="checkBoxBorder" Property="Background" Value="{StaticResource OptionMark.MouseOver.Background}" /> <Setter TargetName="checkBoxBorder" Property="BorderBrush" Value="{StaticResource OptionMark.MouseOver.Border}" /> <Setter TargetName="optionMark" Property="Fill" Value="{StaticResource OptionMark.MouseOver.Glyph}" /> <Setter TargetName="indeterminateMark" Property="Fill" Value="{StaticResource OptionMark.MouseOver.Glyph}" /> </Trigger> <Trigger Property="IsEnabled" Value="false"> <Setter TargetName="checkBoxBorder" Property="Background" Value="{StaticResource OptionMark.Disabled.Background}" /> <Setter TargetName="checkBoxBorder" Property="BorderBrush" Value="{StaticResource OptionMark.Disabled.Border}" /> <Setter TargetName="optionMark" Property="Fill" Value="{StaticResource OptionMark.Disabled.Glyph}" /> <Setter TargetName="indeterminateMark" Property="Fill" Value="{StaticResource OptionMark.Disabled.Glyph}" /> </Trigger> <Trigger Property="IsPressed" Value="true"> <Setter TargetName="checkBoxBorder" Property="Background" Value="{StaticResource OptionMark.Pressed.Background}" /> <Setter TargetName="checkBoxBorder" Property="BorderBrush" Value="{StaticResource OptionMark.Pressed.Border}" /> <Setter TargetName="optionMark" Property="Fill" Value="{StaticResource OptionMark.Pressed.Glyph}" /> <Setter TargetName="indeterminateMark" Property="Fill" Value="{StaticResource OptionMark.Pressed.Glyph}" /> </Trigger> <Trigger Property="IsChecked" Value="true"> <Setter TargetName="optionMark" Property="Opacity" Value="1" /> <Setter TargetName="indeterminateMark" Property="Opacity" Value="0" /> </Trigger> <Trigger Property="IsChecked" Value="{x:Null}"> <Setter TargetName="optionMark" Property="Opacity" Value="0" /> <Setter TargetName="indeterminateMark" Property="Opacity" Value="1" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> 由于 Static、MouseOver、Pressed 和 Disabled 状态有不同的颜色,您可能必须从背景、边框和前景色中派生一个小的调色板。 为了使用适配的复选框样式,您可以通过 key 显式引用它: <CheckBox Style="{StaticResource CheckBoxStyle}" /> 您还可以在其他资源之后定义如下隐式样式,因此该样式将自动应用于包含资源字典范围内的所有CheckBox。<Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource CheckBoxStyle}"/> 在这种情况下,您不再显式引用样式。 <CheckBox />

回答 2 投票 0

如果将参数传递给其构造函数,IntelliSense 不会检测 XAML 页面

不确定这是一个错误还是设计使然。如下图所示,当参数传递给其构造函数时,PageTwo 将从 IntelliSense 中消失。当然我可以直接写PageTwo...

回答 1 投票 0

WPF:如何向Style.Trigger中的Background属性添加不透明度?

我想更改鼠标悬停时元素的背景颜色。 我有以下代码: <Setter Property="</desc> <question vote="0"> <p>我想在鼠标悬停时更改元素的背景颜色。 我有以下代码:</p> <pre><code>&lt;Border.Style&gt; &lt;Style TargetType=&#34;Border&#34;&gt; &lt;Setter Property=&#34;Background&#34; Value=&#34;Transparent&#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;White&#34; /&gt; &lt;/Trigger&gt; &lt;/Style.Triggers&gt; &lt;/Style&gt; &lt;/Border.Style&gt; </code></pre> <p>设置背景颜色时,<pre><code>Trigger</code></pre>的<pre><code>Border.Style</code></pre>部分没有不透明度属性。我不想要 100% 白色背景。 如何添加不透明度?</p> </question> <answer tick="false" vote="0"> <p>有 <pre><code>Opacity</code></pre> 属性可供您使用。</p> <p>以下是如何在 XAML 中触发对多个属性的更改</p> <pre><code>&lt;Border.Style&gt; &lt;Style TargetType=&#34;Border&#34;&gt; &lt;Setter Property=&#34;Background&#34; Value=&#34;Transparent&#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;White&#34; /&gt; &lt;/Trigger&gt; &lt;Trigger Property=&#34;IsMouseOver&#34; Value=&#34;True&#34;&gt; &lt;Setter Property=&#34;Opacity&#34; Value=&#34;0.5&#34; /&gt; &lt;/Trigger&gt; &lt;/Style.Triggers&gt; &lt;/Style&gt; &lt;/Border.Style&gt; </code></pre> </answer> </body></html>

回答 0 投票 0

如何让Border元素的hover事件在鼠标进入其区域时触发?

我想在鼠标进入边框区域时做出悬停效果。我有以下 XAML 代码: 我想在鼠标进入边框区域时做出悬停效果。我有以下 XAML 代码: <Border CornerRadius="5" Width="190" Height="40" Margin="0,5,0,0"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="35" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" Text="تجهیزات" FlowDirection="RightToLeft" VerticalAlignment="Center" Margin="0,0,10,0"> <TextBlock.Style> <Style> <Setter Property="TextBlock.FontFamily" Value="{StaticResource Vazir}"/> <Setter Property="TextBlock.FontSize" Value="14"/> <Setter Property="TextBlock.Foreground" Value="White"/> </Style> </TextBlock.Style> </TextBlock> <Viewbox Grid.Column="1" Width="25" Height="25" Stretch="Uniform" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Canvas Height="512" Width="512"> <Path Fill="White" Data="M135.2 117.4L109.1 192l293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 144 0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L96 400l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" /> </Canvas> </Viewbox> </Grid> <Border.Style> <Style TargetType="{x:Type Border}"> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True" > <Setter Property="Background" Value="White" /> </Trigger> </Style.Triggers> </Style> </Border.Style> </Border> 问题是当鼠标进入文本和图像区域时触发悬停效果,而不是整个 Border 元素区域。 我该如何解决这个问题? UIElements 仅在实际绘制的区域接收鼠标事件,例如他们有一个非空的背景、填充或描边画笔。 因此添加默认背景,例如透明: <Border.Style> <Style TargetType="Border"> <Setter Property="Background" Value="Transparent" /> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True" > <Setter Property="Background" Value="White" /> </Trigger> </Style.Triggers> </Style> </Border.Style>

回答 1 投票 0

当我按下 Tab 按钮时,停止 Visual Studio Xaml 编辑器显示片段

最近更新 Visual Studio 2022 或 R# 后,现在当我在 xaml 编辑器中按 Tab 键时,会弹出代码片段对话框。 这是一种新行为,而且非常烦人。钙...

回答 1 投票 0

Avalonia Treeview 选定命令

当我在树视图上选择一个节点时,我试图触发一个事件。我正在使用按钮来捕获命令。我已经获得了一些 ChatGPT 帮助,但没有效果:-( ...

回答 1 投票 0

使用 AvaloniaUI 和 CommunityToolkit.Mvvm 的可重用控件

我目前正在使用 Avalonia,想要构建可重用的控件,这些控件可以在我的最终应用程序的多个地方使用。 为了简单起见,我想要一个名为 FileP 的 UserControl...

回答 1 投票 0

我可以在 XAML 设计器中查看 ResourceDictionary 吗?

我正在接手一些已离开公司的同事的申请。 在调试时,我看到显示了一些类似窗口的东西,所以我使用“Live Visual Tree”来了解我......

回答 1 投票 0

是否可以使用带有附加事件的 Microsoft.Xaml.Behaviors.EventTrigger 来调用命令?

我正在尝试使用附加事件来调用 ICommand。 我正在使用 Microsoft.Toolkit.Mvvm NuGet 包以及 Microsoft.Xaml.Behaviors.Wpf Nuget 包。 我已经成功开始...

回答 2 投票 0

在购物车图标上定位商品计数圆圈

我正在尝试将商品计数圆圈放置在购物车图标上。当我设置边距来调整项目圆圈时,它会开箱即用。见下图: 这是带有

回答 1 投票 0

WPF - 适合嵌套网格的控件大小

使用 WPF,我的布局是一系列嵌套网格,因为我的理解是,这比使用 RowSpan 更能保留我想要的外观。每个生成的网格部分都是一个区域,

回答 1 投票 0

Avalonia:无法绑定到 ColumnDefinition.Width

我的 Avalonia 用户控件中有一个网格,当我的视图模型(派生自 ReactiveObject)的 bool 属性通过视图模型方法(代码在底部)设置为 true 时,我想隐藏其列。 S...

回答 1 投票 0

XAML 项目控制:内容呈现器可见性并不反映每个拥有的项目

在 ItemsControl 中,项目位于 ContentPresenter 中,因此如果项目的 Visibility='collapsed',则其 ContentPresenter 仍具有 Visibility='Visible'... (这里解释了这种行为) 所以这两个例子...

回答 1 投票 0

自定义窗口样式未显示在设计视图中

我正在尝试在VS2019(.NET Core 3.1)中的WPF应用程序中自定义窗口样式。我正在观看视频,当前将样式直接添加到 MainWindow.xaml 中。没有我的

回答 2 投票 0

为什么.NET MAUI Grid 没有垂直延伸

我正在尝试为我的应用程序添加一个欢迎屏幕,它由一个标题标签、2 个垂直排列的按钮和一个用于保存最近编辑的文件的框架组成。元素被添加到网格 b...

回答 1 投票 0

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