Image path for ribbon application item - wpf

I got little problem with my image path for ribonn aplicaton menu item.
I got this piece of code:
<ribbon:RibbonApplicationMenuItem x:Name="MenuItemLogout" Header="Odhásit"
ImageSource="/Resources/logoutSmall.png"
Command="{Binding RelogUserCommand}"/>
The thing i want is: the right path of image. Because in this case, Visual Studio cant find that path. This are two different project. The one where i using this ribbon is called Z05.WPF.WeighingSystem in folder 01_LoadingPlace/ViewAnnouncedVehicles - in this folder i have particular xaml and view model.
And i have another project called Z05.DesktopApplication where i have folder called Resources and there i have all of my images. I also tried to use this path:
pack://application:,,,/Resources/
But its also doesnt work.
Any tips? Thanks! :)

Related

Adding existing user control to WPF project

When I add an existing user control to a project, I go to "Add existing item" and then choose both the .xaml and the .xaml.cs files for the user control.
After adding, the .cs file seems to be dissociated from the .xaml file, although everything builds properly.
Is there a better way to add existing user controls, since the user control actually consists of two files (the .xaml view and the .xaml.cs code behind)?
you have to check your namespaces . i think the problem is that . after changing xaml namespace go to cs and change the name space and after that go to InitializeComponent() method definition and change its namespace too .
hope it work
I'm in VS2019 and come across the same problem - trying to reuse multiple User Controls from another project. Here is some finding/workaround -
After right click and select "Add -> Existing Item..." Select one
.xaml file (of your User Control), and do not include .cs files.
Click Add and both the .xaml and .cs file will be added, and in the
nicely associated way.
If multiple User Control .xaml files are added at the same time -
with or without the .cs files - this does not work. The .cs files won't
be associated with .xaml files.
Not any clean solution but hope this helps a bit.

XAML don´t know the Resource folder

I tried to set up a Icon in XAML from the Resources.resx but it cant find the resources.
Code:
....
xmlns:resx="clr-namespace:Admin_Overwatch.Properties"
Title="MainWindow" Height="400" Width="600" Icon="{x:Static
resx:Resources.TitelLogomRand1}">
Error:
"The name "Resources" doesen´t exist in the namespace...."
The courious thing is that in the autoformat it finds every icon in the Resources file. I have Rebuild it without any success and tried a new Resource folder also with no success.
Why doesn´t it find the Folder(s) ?
Edit:
I tried this tutorial also without any success, I got the same error, it can´t find the resources....
http://social.technet.microsoft.com/wiki/contents/articles/22420.binding-to-resources-resx-files-in-xaml.aspx
The Answer was to use the Assembly in addition to the normal clr:
xmlns:resx="clr-namespace:Admin_Overwatch.Properties;assembly=Admin-Overwatch"
xmlns:local="clr-namespace:Admin_Overwatch;assembly=Admin-Overwatch"
The Assembly name can be found by
Right Click on the Project name under Properties --> Application.
But the important part is that it is not possible to load the pictures from the resx in wpf that goes only in win forms.
see here:
How to use Resources.resx to link images
I had simmilar problem. Added a placeholder image to use as default ImageSource in XAML on startup. I created it trough Project+Right-Click->Properties>Resources>Add Resource>New Image etc.
Then got to Resource folder in the project, selected the image and down bellow in properties I just selected Build Action to Resource. And now it works!

Silverlight duration tooltip

I'm trying to increase the length of time that a tooltip displays in a silverlight application. I downloaded Silverlight.Controls.ToolTip from codeplex and I add it as a reference. Here is my code in my xaml:
xmlns:Controls="clr-namespace:Silverlight.Controls.ToolTips;assembly=Silverlight.Controls.ToolTips"
<Button Content="button content">
<Controls:ToolTipService.ToolTip>
<Controls:ToolTip DisplayTime="00:00:10" InitialDelay="00:00:03">
<TextBlock Text="tooltip"></TextBlock>
</Controls:ToolTip>
</Controls:ToolTipService.ToolTip>
</Button>
The code compiles. However, while running the code I get an error "XamlParseException occurred The attachable property 'ToolTip' was not found in 'ToolTipService.' Any ideas on what is causing this error? Thanks!
I had the same problem, here is how I solved it.
1) Go to: http://tooltipservice.codeplex.com/SourceControl/BrowseLatest
2) Download the Source Code
3) Copy "ToolTip.cs", "ToolTipService.cs" and ToolTipTimer.cs from
"branches\2.2.0\Silverlight.Controls.ToolTips\" into your own project somewhere.
4) Now point the xmlns to assembly on your own project where you have copied the source file into.
So basically, just use the source file instead of the dll and it will work. This has worked for me, hope it works for you.
Good Luck.
If you are referencing the ToolTip DLL from another DLL, try also adding a reference to it into you main project.
You have downloaded this DLL from web and have not unblocked it yet.
Right Click on the DLL, go to properties and unblock it.

Show an Image resource in a WPF window defined in a class library

I have seen this thread: WPF image resources and applied the information there. But my situation seems a bit more tricky:
Assembly A is a class library
contains Dialog.xaml
this is a WPF window
contains Images/i.gif
Assembly B is a WPF application
shows Dialog.xaml
In my dialog, I have tried specifying the image in the following ways:
<Image Source="/Images/i.gif"/>
and
<Image Source="pack://application:,,,/Images/i.gif"/>
both work, but only in the designer!
Next, I added two and two together to yield:
<Image Source="pack://application:,,,A;;content/Images/i.gif"/>
but this shows the same symptoms:
As soon as I start the application, the images seem to be not found. I don't know for sure, since I get no error message. They just don't show up.
Any ideas?
You appear to be missing the required word "Component" form the beginning of your path, e.g.
pack://application:,,,/YourAssembly.Name;Component/Images/PlusGreen.png

Embedded images not showing when in a UserControl

I have an Image control that contains a path to an embedded image (build action 'resource').
<Image Source="Assets/images/image.png" Stretch="None" />
If I add that to a container in my MainPage.xaml the image appears fine. When having the same image in a UserControl as shown below, and then adding an instance of that UserControl on MainPage.xaml the image does not appear.
<UserControl x:Class="HomePage.Views.SimpleUserContol"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Grid x:Name="LayoutRoot" >
<Image Source="Assets/images/image.png" Stretch="None" />
</Grid>
</UserControl>
Can anyone shed any light on why this happening and maybe point me in the direction of a solution.
Cheers, J
(I'm working in Silverlight but would think the same thing probably happens in WPF)
EDIT:
Setting
<Image Source="/Assets/images/image.png" Stretch="None" />
works fine when setting the build action to 'Content' however it doesn't work when using 'resource'. The problem is definatly it's relative position in the file structure as add ../ works fine. I'd still like a solution to get an image from the assembly if possible
You have to reference it as a resource, not just the path.
This is how it is done in a WPF application:
<Image Source="/MyAppName;component/images/image.png" Stretch="None" />
The original image is located in images/image.png
Note:
I have no experience in SilverLight, but you said it is probably similiar in WPF, so I suggest this...
You're using a relative path to the image. If your UserControl is located in a subdirectory, the relative path is not valid anymore. You should use an absolute path like "/Assets/images/image.png", or "pack://application:,,,/Assets/images/image.png" (use this last version if your UserControl is going to be used by another assembly)
If you needed to change its build type from Content to Resource, try building clean. I had everything exactly right (path to other project's resources, build type, et al.) yet it didn't work until I added a new image to the images folder, which perhaps cleared out the old statuses.
In fact, manually delete the bin and obj folders in the project where the image is.
I think the problem is related to the "virtual" namespace your image got when it's embedded in ressources (from the logical path to it) and the difference with your usercontrol namespace.
using a '/' to get to the root of the site works only if the root of the site is not within a subdirectory. ie: an admin site as a subdirectory to the main site (http://www.somesite.com/admin). In this case using '/assets/images/image.png' would then go to the parent site first. You may be able to reference the image like so: '~/assets/images/image.png'
I've also found the when an image has special characters that require encoding in the file name, like "+", which gets encoded %2b can cause the problem as well.
I suggest renaming any images that might have contain escape characters.
I had this problem and I tried moving the image in and out of the Canvas, and up and down the Canvas container. I even tried manipulating the panel.zindexes to no avail. I was using source= "/images/map.jpg". The image folder was created by right clicking the project and adding folder, so it was below the resources folder.
Solved: I navigated to the images folder in windows explorer and used alt+d, and ctrl+c to copy the file location with these \ instead of these / and voila it worked.

Resources