gpt4 book ai didi

c# - WPF 图像源绑定(bind)有时工作有时不工作

转载 作者:行者123 更新时间:2023-11-30 23:28:50 25 4
gpt4 key购买 nike

我在尝试绑定(bind) Image Source 时遇到了一点问题。我正在创建一个棋盘游戏,您可以在其中选择一个玩家来查看其属性(包括他的形象)。板上的字段也有图像作为背景。

我为字段创建的模板:

<ControlTemplate x:Key="fieldButtonTemplate" x:Name="fieldButtonTemplateName" TargetType="{x:Type Button}">
<Grid x:Name="fieldGrid" Visibility="Visible">
<Grid.LayoutTransform>
<RotateTransform Angle="{Binding ImageRotate}" />
</Grid.LayoutTransform>
<Grid.Background>
<ImageBrush ImageSource="{Binding Path=ImageSource}"/>
</Grid.Background>
<Grid.RowDefinitions>
....
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
...
</Grid.ColumnDefinitions>
</Grid>
</ControlTemplate>

以及查看玩家属性的那个:

<Image Source="{Binding Path=CurrentlySelected.ImageSource}" Grid.Column="0" Grid.Row="0"
Grid.ColumnSpan="2" Stretch="Fill" />
<StackPanel x:Name="CurrentPlayerStackPanel" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2">
<TextBlock Text="{Binding Path=CurrentlySelected.Name}" TextWrapping="Wrap"
FontFamily="Magneto" FontSize="20" Foreground="BlanchedAlmond"/>
<TextBlock Text="{Binding Path=CurrentlySelected.Character}" TextWrapping="Wrap"
FontFamily="Magneto" FontSize="20" Foreground="BlanchedAlmond"/>
<TextBlock Text="{Binding Path=CurrentlySelected.Money}" TextWrapping="Wrap"
FontFamily="Magneto" FontSize="20" Foreground="BlanchedAlmond"/>
</StackPanel>

问题是图像仅在选择播放器时显示,而不显示为网格的背景。我为玩家和 field 创建了一个界面:

interface IVisualObject
{
int ImageRotate { get; set; }
string ImageSource { get; set; }
}

图像是资源,构建操作设置为内容,如果更新则复制到输出目录设置为复制。我试图作为图像源传递的字符串就像

"pack://siteoforigin:,,,/Resources/picture.jpg"

顺便说一句,ImageRotate 绑定(bind)得很好。提前致谢!

编辑:如果我这样设置

<Grid.Background>
<ImageBrush ImageSource="pack://siteoforigin:,,,/Resources/picture.jpg"/>
</Grid.Background>

有效。

最佳答案

使您的属性成为 ImageSource 而不是字符串,或者使用此答案中提到的转换器:Binding image source through property in wpf .当您对字符串进行硬编码时,xaml 编译器会为您执行此操作,这就是它起作用的原因。

关于c# - WPF 图像源绑定(bind)有时工作有时不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35816919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com