下面的XAML不正确,但它代表了我尝试做的事情。我对WPF很新,但我想知道这样的事情是否可行,而不是在代码中声明实例?
<ListBox Name="lbInstalledFonts" VerticalContentAlignment="Center" DisplayMemberPath="Name" ItemsSource="{Binding Source={new System.Drawing.Text.InstalledFontCollection().Familes}}" />
详细说明,我只需要这个ListBox的System.Drawing.Text.InstalledFontCollection().Familes
列表。就是这样。所以我认为我可以完全通过XAML以类似于如何绑定到ASP.NET中的DataSource(通过在aspx / ascx文件中使用&lt;%和%&gt;)的方式完成它?这是可能吗?我做了一些搜索,但没有多少运气。
答案 0 :(得分:0)
是的,有可能:
<Window x:Class="HelpStackOverflow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:drawing="clr-namespace:System.Drawing.Text;assembly=System.Drawing"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<drawing:InstalledFontCollection x:Key="InstalledFontCollection" />
</Window.Resources>
<Grid>
<ListBox Name="lbInstalledFonts"
VerticalContentAlignment="Center"
DisplayMemberPath="Name"
ItemsSource="{Binding Source={StaticResource InstalledFontCollection}, Path=Families}" />
</Grid>
</Window>