我必须在uwp应用程序中缩放图像,它工作正常,但设计需要在它前面有另一个图像(用作按钮),我也不希望该元素也被缩放.它必须只是canvas标签内的图像,这就是我现在拥有它的方式.
<ScrollViewer MinZoomFactor="1"
ZoomMode="Enabled"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto">
<RelativePanel HorizontalAlignment = "Stretch" >
<Canvas x:Name="canvas">
<Image Source = "{Binding Test,UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
</Canvas >
<Button RelativePanel.AlignTopWithPanel="True"
Height="55"
Command="{Binding Path=CollapseSplitView}"
CommandParameter="{Binding ElementName=SplitV}">
<Button.Background>
<ImageBrush ImageSource = "/Assets/btlist.png" ></ ImageBrush >
</Button.Background >
</Button >
<Image RelativePanel.AlignBottomWithPanel="True"
RelativePanel.AlignRightWithPanel="True"
Source="/Assets/escala-x.png"
Width="130"
Height="70"
Margin="0,0,20,0"
ScrollViewer.IsZoomChainingEnabled="False"
ScrollViewer.IsZoomInertiaEnabled="False">
</Image>
</RelativePanel>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
这就是我拥有的xaml,它使缩放适用于其中的所有元素.我试图为不在画布中但没有运气的元素设置scrollViewer.zoomMode = disabled.有任何想法吗?谢谢!
我试图在单击按钮时更改按钮的字体颜色。我尝试了很多不同的东西,但没有一个奏效。这是我尝试过的最新方法,我认为应该是答案,但它不起作用。有人可以帮忙吗?PointerOver 工作正常,但在单击按钮时 Focused 不执行任何操作。
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Foreground" Value="Black" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid
x:Name="RootGrid"
Background="{TemplateBinding Background}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="PointerOver">
<VisualState.Setters>
<Setter Target="ContentPresenter.FontWeight" Value="Bold" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Pressed"/>
<VisualState x:Name="Focused">
<VisualState.Setters>
<Setter Target="ContentPresenter.Foreground" Value="Purple" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Disabled">
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<ContentPresenter
x:Name="ContentPresenter"
Content="{TemplateBinding Content}"
ContentTransitions="{TemplateBinding ContentTransitions}"
ContentTemplate="{TemplateBinding ContentTemplate}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
根据评论进行编辑:添加说明 - 我在发布此问题之前尝试使用 Pressed,但它没有做我想要的。单击后,我希望颜色保持应用直到单击另一个按钮,然后单击的新按钮中的文本将更改颜色,单击的上一个按钮将恢复为默认颜色。按下后,只要您松开鼠标按钮,文本就会恢复为默认值。
基于编辑的答案建议:还提供周围代码以查看是否在其他地方犯了错误。
<Page.Resources>
<Style x:Key="ButtonStyle" …Run Code Online (Sandbox Code Playgroud) 我有一个新的哲学问题,旨在强调旧的WPF模式与新的UWP模式之间的差异。
我想在UWP环境而不是WPF中扩展具有新属性的标准控件(例如Button)。
在WPF中,我注意到可以用两个文件创建一个自定义控件:一个Themes / Generics.xaml和一个MyCustomControl.cs。
在UWP中,它仅创建.cs文件...是否表示如果我甚至想修改Button的XAML内容(也就是说,我想创建一个IconButton:一个内容为SymbolIcon和Textblock),那不可能吗?
我知道我可以使用“用户控件”,但是它是一个通用控件,我会放开要自定义的控件的所有属性(例如,在我的情况下,是Click事件等)...我甚至可以扩展用户控件以包括所需控件的所有属性...,但这将花费太长时间。
直截了当:在UWP环境中,通过代码AND Xaml定制和扩展标准XAML控件的最佳和正确方法是什么?
例如,考虑一个经典的任务:创建一个IconButton,就像我上面所说的...带有它的Content的Button成为一个带有SymbolIcon和Textblock作为子元素的网格。
谢谢。
我在 UWP 项目中使用 Visual Studio 2017。我从 NuGet 包安装了 SQLite Compact Toolbox,如下所示:
之后,我仍然无法using Microsoft.Data.Sqlite在MainPage.xaml.cs 中添加读取我的表中的值,并进行查询。
我怎样才能添加using Microsoft.Data.Sqlite?
我正在使用 Microsoft.Toolkit.Uwp.UI.Controls 中的 GridSplitter。在用户使用网格拆分器调整两列大小后,是否有办法重置调整大小并使网格的列宽恢复到调整大小之前的正常宽度?
背景故事:
我有一个页面,在网格中显示两个彼此相邻的用户控件。我在它们之间使用 gridsplitter 以允许用户调整列的大小。
基于其他交互,显示在网格中的用户控件会发生变化。当我“导航”(即更改网格中的用户控件)时,我想将列宽重置为其原始值(在我的情况下,它们以 * 和 2* 开头,因此我希望将列重置回 1/3和 2/3s 大小)。
重置网格列宽的最佳方法是什么?
我目前正在查看 UWP CommunityToolkit DataGrid。我已经阅读了文档,但我没有发现他们清楚如何应用 ColumnHeaderStyle。我不确定我应该在列标题中定位什么来设置我的样式。我想改变背景和前景色。我还希望这些属性应用于整个标题,而不仅仅是单个列。
<controls:DataGrid.ColumnHeaderStyle>
<Style TargetType="">
<Setter Property="" Value=""/>
</Style>
</controls:DataGrid.ColumnHeaderStyle>
Run Code Online (Sandbox Code Playgroud) 我希望能够在我的 UWP 应用中动态添加 NavigationViewItems,但我不知道如何设置图标。
XAML 中的 NavigationViewItem.Icon 格式为: Icon="Page",看起来它正在使用Symbol枚举。除了 C# 说它是一个IconElement对象
我希望能够写出这样的东西:
NavigationViewItem navItem = new NavigationViewItem();
navItem.Icon = Symbol.Page;
navView.MenuItems.Add(navItem)
Run Code Online (Sandbox Code Playgroud)
编译器吐出一个错误,Symbol.Page因为它不是 IconElement,有什么办法可以将它转换为 IconElement?
我的项目文件夹中有两个项目:
HtSuite.UWP | LibraryHtSuite.UWP.Leitstand | Applicaton在Libraryis an 中UserControl NamePasswordControl,我可以在XAML | Designer.
当我将NamePasswordControl放在我的LoginView.xaml(也在Library)上时,出现以下错误:
由于缺少程序集,无法显示元素“passwordView”。构建应用程序后,您可能能够查看此控件
当我运行时Application,一切都按预期工作。
到目前为止我尝试了以下步骤(没有成功):
dotnet cleandotnet restorev16.6.0) 并尝试了v16.7.0 预览版 1有人知道如何修复预览吗?
https://files.dominic-jonas.de/stackoverflow/ClassLibrary2.zip
一个类库,其中有一个 UserControl 和一个应在其上显示的页面。但是,错误也显示在那里,无法预览
我正在尝试创建与 MS SymbolIcon 相同的自定义符号图标控件,它将获取枚举符号值作为输入,并且将从字典<Symbol, string> 集合中检索等效路径数据值。但是从 IconElement 继承的符号图标类以及我的应用程序中面临的以下相同问题。
“IconElement 不采用带有 0 个参数的构造函数”
但我已将我的构造函数标记为 extern 并用分号括起来以解决构造函数问题。
public class CustomSymbolIcon : IconElement
{
public extern CustomSymbolIcon();
}
Run Code Online (Sandbox Code Playgroud)
But my question is, I can get input from the end user as Symbol Enum and retrieved equivalent path geometry based on input from the stored dictionary. But I couldn't bind the path geometry to the path element(Targeted Custom icon class)and I can't write the template style for this class. …
uwp-xaml ×10
uwp ×9
c# ×8
xaml ×6
button ×1
scrollview ×1
sqlite ×1
visualstates ×1
winui ×1
winui-3 ×1