在WPF中,我开始使用LineGeometry,EllipseGeometry,GeometryGroup,Path等类来绘制2D图形.我选择了这些形状,因为我看到它可以更快,由于冻结功能.
我需要使用特定字体绘制文本和几何.文本需要使用与几何相同的坐标系来定位.我需要能够应用RotateTransform等变换.
什么是最好的方式?我遇到了GlyphRunDrawing类,但它真的很复杂.
非常感谢提前.
我有一个带有ListView的用户控件,其中包含来自ObservableCollection的简单项.我希望ListView的ContextMenu包含项目,具体取决于ListView中选择的内容.如果未选择任何项目,则不应显示某些MenuItems.
打开ContextMenu时,甚至都没有调用我的转换器.绑定似乎是错误的,我在输出窗口中找到它:
System.Windows.Data错误:4:找不到引用'ElementName = listView'的绑定源.BindingExpression:路径=的SelectedItem; 的DataItem = NULL; target元素是'MenuItem'(Name =''); 目标属性是"可见性"(类型"可见性")
我不明白什么是错的,无法通过搜索网络来解决这个问题.
这是一些简化的代码:
<UserControl x:Class="MyApp.DatabaseControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:MyApp"
Height="Auto"
Width="Auto">
<UserControl.Resources>
<l:ValueToVisibilityConverter x:Key="valueToVisibility" />
</UserControl.Resources>
<Grid>
<ListView x:Name="listView" ItemsSource="{Binding Persons}">
<ListView.View>
<GridView>
<GridViewColumn Width="140" Header="First Name" DisplayMemberBinding="{Binding FirstName}"/>
<GridViewColumn Width="140" Header="Last Name" DisplayMemberBinding="{Binding LastName}" />
</GridView>
</ListView.View>
<ListView.ContextMenu>
<ContextMenu>
<MenuItem
Header="Open"
Visibility="{Binding SelectedItem, ElementName=listView, Converter={StaticResource valueToVisibility}}"/>
<Separator/>
<MenuItem Header="Add..."/>
<MenuItem Header="Remove"/>
</ContextMenu>
</ListView.ContextMenu>
</ListView>
</Grid>
Run Code Online (Sandbox Code Playgroud)
非常感谢!