c# - TypeConverterMarkupExtension error on setting ImageSource of UserControl -
i'm trying embed image user control. see many posts topic, , tried lot of combination, cannot work.
<usercontrol x:class="audioboxcontroller.audioboxitem" x:name="audioboxitemcontrol" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:ignorable="d" width="200" height="250"> <grid> <image name="image" margin="10" verticalalignment="center" source="{binding path=imagesource, mode=oneway}"/> </grid> </usercontrol>
in code behind have create dp image:
public partial class audioboxitem : usercontrol { public audioboxitem() { initializecomponent(); datacontext = this; } public static dependencyproperty sourceproperty = dependencyproperty.register("imagesource", typeof(imagesource), typeof(audioboxitem)); public imagesource imagesource { { return (imagesource)getvalue(sourceproperty); } set { setvalue(sourceproperty, value); } } }
now, in window use it:
<local:audioboxitem x:name="ctrlmike" grid.column="0" verticalalignment="center" imagesource="/audioboxcontroller;component/images/speakers.png"/>
at design time correctly see image, instead, when run error:
a first chance exception of type 'system.windows.markup.xamlparseexception' occurred in presentationframework.dll additional information: 'an exception thrown when specification of value of 'system.windows.baml2006.typeconvertermarkupextension'.' line number '19' e line position '60'.
where i'm wrong?
edit
i changed source image "embedded resource" "content" , use relative path:
<local:audioboxitem x:name="ctrlmike" grid.column="0" verticalalignment="center" imagesource="images/speakers.png"/>
in way works...so, syntax have use if image "embedded resource"?
your problem dependencyproperty declaration.
firstly, sourceproperty
should imagesourceproperty
secondly, believe need add propertymetadata
argument dependencyproperty
declaration in order support oneway
bindings
public static dependencyproperty sourceproperty = dependencyproperty.register("imagesource", typeof(imagesource), typeof(audioboxitem), new propertymetadata(null));
Comments
Post a Comment