我开始使用WPF,似乎无法在此方法上找到任何内容。我很可能不知道正确的措辞,所以问这里。
我有一个按钮,我已经格式化了我在XAML中的需求。除了Image之外,我在窗口中正确渲染它。由于每次都会通过代码调用图像(因为按钮会在用户需要时生成),因此图像在XAML中保留为空白。
在Code部分中,我遇到了在创建的XAML按钮模板中调用“imgIco”图像名称的问题; “button.imgIco”似乎没有用。 ;)
提前感谢您,这里是相互交互的代码片段。
XAML
your_data
C#的.cs
<Setter.Value>
<ControlTemplate TargetType ="{x:Type Button}">
<Grid>
<Ellipse Name ="UXbg" Fill ="Transparent" Stroke="White" StrokeThickness="1"/>
<Ellipse Name ="UXbg2" Width="40" Height="40" Fill="White"/>
<Image Name="UXid" Width="32" Height="32">
<Image.Clip>
<EllipseGeometry Center="16,16" RadiusX="16" RadiusY="16"/>
</Image.Clip>
</Image>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property ="IsMouseOver" Value ="True">
<Setter TargetName ="UXbg" Property ="Stroke" Value ="Orange"/>
<Setter TargetName ="UXbg2" Property ="Fill" Value ="Orange"/>
</Trigger>
<Trigger Property ="IsPressed" Value ="True">
<Setter TargetName ="UXbg" Property ="Stroke" Value ="White"/>
<Setter TargetName ="UXbg2" Property ="Fill" Value ="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
答案 0 :(得分:0)
你的问题似乎缺少一些信息,但通常当你想设置一个带有代码的图像时,你可以这样做:
<Image Name="ModifiedImage" Initialized="ModifiedImage_Initialized"/>
代码隐藏:
private void ModifiedImage_Initialized(object sender, EventArgs e)
{
BitmapImage img = new BitmapImage();
img.BeginInit();
img.CacheOption = BitmapCacheOption.OnLoad;
img.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
// TODO: check if the image exists, return a "image not found" image if not found.
img.UriSource = new Uri(@"/Resources/32start.png", UriKind.Relative);
img.EndInit();
((Image)sender).Source = img;
}