When you load some xaml dynamically the name scopes won't be merged with the user control that will host the xaml. You actually can use FindName() but you should call it on the root xaml element loaded from file.
FrameworkElement loadedRoot = (FrameworkElement)XamlReader.Load(xmlReader);
loadedRoot.Loaded += new RoutedEventHandler(loadedRoot_Loaded);
LibovLoad.Children.Add(loadedRoot);
void loadedRoot_Loaded(object sender, RoutedEventArgs e)
{
Canvas canvas = (sender as FrameworkElement).FindName("LibovPhoto"); // not null
}