0
У меня есть шаблон управления в словаре ресурсов окна:Программным создал кнопку добавлены ресурсы не работает должным образом
<ControlTemplate x:Key="ActionButton1" TargetType="Button">
<Grid>
<Image Name="Normal" Source="{DynamicResource EnableIconSource}"/>
<Image Name="MouseOver" Source="{DynamicResource MouseOverIconSource}" Visibility="Hidden"/>
<Image Name="Pressed" Source="{DynamicResource PressedIconSource}" Visibility="Hidden"/>
<Image Name="Disabled" Source="{DynamicResource DisabledIconSource}" Visibility="Hidden"/>
</Grid>
<ControlTemplate.Triggers>
...
</ControlTemplate.Triggers>
</ControlTemplate>
При использовании кнопки из XAML, ресурсы в ней работать должным образом и образы появляются в местах их
<Button Name="NewClient"
Click="NewClientClick"
Content="?????????? ??????????"
Template="{DynamicResource ActionButton1}">
<Button.Resources>
<BitmapImage x:Key="EnableIconSource" UriSource="/img/invite_next_normal.png"/>
<BitmapImage x:Key="MouseOverIconSource" UriSource="/img/invite_next_mouse_over.png"/>
<BitmapImage x:Key="PressedIconSource" UriSource="/img/invite_next_pressed.png"/>
<BitmapImage x:Key="DisabledIconSource" UriSource="/img/invite_next_disabled.png"/>
</Button.Resources>
</Button>
Но когда я пытаюсь сделать это в коде картинки просто выглядят прозрачными
var toolTip = new StackPanel();
var rslt = new Button {Name = "NewClient"};
rslt.Click += NewClientClick;
rslt.Content = "?????????? ??????????";
rslt.Template = FindResource("ActionButton1") as ControlTemplate;
toolTip.Children.Add(new TextBlock
{
FontWeight = FontWeights.Bold,
Text = toolTipHeader
});
toolTip.Children.Add(new TextBlock
{
Text = toolTipText
});
rslt.ToolTip = toolTip;
var resources = new Dictionary<string, string>
{
{"EnableIconSource", "/img/personal.png"},
{"DisabledIconSource", "/img/personal_gray.png"},
{"OverlayIconSource", "/img/not_come.png"},
});
foreach (var resource in resources)
{
var bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(resource.Value, UriKind.RelativeOrAbsolute);
bmp.EndInit();
rslt.Resources.Add(resource.Key, bmp);
}
return rslt;
Любые идеи?
Дело в том, что если я просто использую этот способ для размещения этих изображений на содержимом кнопки в панели стека - они тоже отображаются правильно, даже без абсолютных путей –