none
Wie erstellt man ein Pushpin-ControlTemplate mit einem dynamischen Image? RRS feed

  • Frage

  • Hallo,

    ich häng jetzt schon recht lange an dem Problem, dass ich einen simplen Pushpin haben möchte in dem ein Image (kein PNG) von mir angezeigt wird.

    Das Image an sich, bekommt man recht einfach in das Map-Control, aber mit einem simplen Rahmen und unten einen kleinen Pfeil eben wie der normale Pushpin ohne Bild, sowas bekomm ich nicht hin.

    Ich hoffe jemand von euch kann mir bitte weiterhelfen.

     

    Gruß,

    Daniel

    Dienstag, 23. November 2010 16:01

Antworten

  • Hi,

    hier hast ne wunderbare Anleitung dazu. Um ein Image noch im Control anzuzeigen oder der Gleichen sollte kein Problem darstellen!

    Klick mich schnell

     

    Bsp.: für ControlTemplate für Pushpin

    <ControlTemplate x:Key="myPushpin" TargetType="my:Pushpin">
      <Image Height="24" Source="Resources/Pics/foddo.jpg" Stretch="Fill" Width="16"/>
    </ControlTemplate>
    

    Mittwoch, 24. November 2010 07:08
  • Hi Daniel,

    wähle dein Control in Blend aus und mach einen Rechtsklick oder geh zu Object --> Edit Style --> Current. 

    Gruß,

    Ben

    Mittwoch, 24. November 2010 10:32

Alle Antworten

  • Hi,

    hier hast ne wunderbare Anleitung dazu. Um ein Image noch im Control anzuzeigen oder der Gleichen sollte kein Problem darstellen!

    Klick mich schnell

     

    Bsp.: für ControlTemplate für Pushpin

    <ControlTemplate x:Key="myPushpin" TargetType="my:Pushpin">
      <Image Height="24" Source="Resources/Pics/foddo.jpg" Stretch="Fill" Width="16"/>
    </ControlTemplate>
    

    Mittwoch, 24. November 2010 07:08
  • Klasse danke!

    Hab da jetzt nur ein Problem, dass ich das ganze jetzt als Style gefunden habe und ich jetzt diesen Style gerne editieren möchte.

    Ist sowas mit Expression Blend möglich?

    Das ganze sieht bei mir jetzt so aus:

    <phone:PhoneApplicationPage.Resources>
    
        <Style x:Key="PushpinStyle" TargetType="maps:Pushpin">
          <Setter Property="BorderBrush" Value="#FFF4F4F5" />
          <Setter Property="Template">
            <Setter.Value>
              <ControlTemplate>
                <Canvas Height="0"
                  RenderTransformOrigin="0.5,0.5"
                  Width="0">
                  <Canvas RenderTransformOrigin="0.5,0.5"
                    Height="1"
                    Width="1">
                    <Path Data="M22.5,1 C34.374123,1 44,10.625878 44,22.5 C44,31.034525 39.027256,38.407604 31.821138,41.879868 L31.359026,42.095631 L22.702744,60.864998 L13.900847,42.209641 L13.651964,42.100761 C6.1912994,38.727623 0.99999976,31.220058 1,22.5 C0.99999976,10.625878 10.625878,1 22.5,1 z"
                     Fill="{TemplateBinding BorderBrush}"
                     Height="61.865"
                     Stretch="Fill"
                     Stroke="Black"
                     StrokeThickness="2"
                     StrokeLineJoin="Miter"
                     UseLayoutRounding="False"
                     Width="45"
                     RenderTransformOrigin="0.5,0.5"
                     Canvas.Left="-2.703"
                     Canvas.Top="-7.187" >
                      <Path.RenderTransform>
                        <CompositeTransform TranslateX="-20"
                                TranslateY="-55"/>
                      </Path.RenderTransform>
                    </Path>
                    <Path Data="M35,17.5 C35,27.164984 27.164984,35 17.5,35 C7.8350167,35 0,27.164984 0,17.5 C0,7.8350167 7.8350167,0 17.5,0 C27.164984,0 35,7.8350167 35,17.5 z"
                     Fill="{TemplateBinding Background}"
                     HorizontalAlignment="Left"
                     Height="35"
                     Stretch="Fill"
                     StrokeThickness="2"
                     VerticalAlignment="Top"
                     RenderTransformOrigin="0.5,0.5"
                     Width="35"
                     UseLayoutRounding="False"
                     Canvas.Top="-7.4"
                     Canvas.Left="-2.888" >
                      <Path.RenderTransform>
                        <CompositeTransform TranslateX="-15"
                                TranslateY="-50"/>
                      </Path.RenderTransform>
                    </Path>
                  </Canvas>
                  <ContentPresenter Width="35"
                         Height="35"
                         RenderTransformOrigin="0.5,0.5"
                         Canvas.Top="-3.5">
                    <ContentPresenter.RenderTransform>
                      <CompositeTransform TranslateX="-18"
                              TranslateY="-54"/>
                    </ContentPresenter.RenderTransform>
                  </ContentPresenter>
                </Canvas>
              </ControlTemplate>
            </Setter.Value>
          </Setter>
        </Style>
    
      </phone:PhoneApplicationPage.Resources>
    

    Dem Content weis ich dann mein Objekt zu.

    Momentan ist der Style rund, ich würde den gerne viereckig haben. Sowas muss doch bestimmt mit Expression Blend editierbar sein!

    Leider hab ich dort keine Möglichkeit gefunden, den angegebenen Style zu bearbeiten, wenn ich die Solution dort öffne.

     

    Gruß,

    Daniel

    Mittwoch, 24. November 2010 09:42
  • Hi Daniel,

    wähle dein Control in Blend aus und mach einen Rechtsklick oder geh zu Object --> Edit Style --> Current. 

    Gruß,

    Ben

    Mittwoch, 24. November 2010 10:32
  • Danke!

    Habs gefunden. Ohne Blend schafft man fast nichts mehr.

     

    Gruß,

    Daniel

    Mittwoch, 24. November 2010 12:09