2009-08-17 9 views
1

사용자 정의 버튼을 아래의 버튼 샘플처럼 보이게하고 싶습니다. 구체적으로 말하면, 버튼의 폭은 라벨에서 가장 큰 단어의 너비 (즉, 필자의 예에서는 "길쭉한"너비)에 의해 결정되기를 원합니다. 레이블은 줄 바꿈하지 말고 줄 바꿈되어야합니다. 그리고 아이콘의 위쪽 가장자리와 내 단추의 위쪽 가장자리 사이에 하나의 픽셀 만 필요합니다. 나는 많은 것을 시도했지만 지금까지 아무 소용이 없습니다. horizontalGap 및 verticalGap을 0으로, 패딩을 0으로 줄였습니다. 그러나 아직도 아무것도. 도와주세요. 여기 플렉스 사용자 정의 버튼 구성 요소

내가 지금 가지고있는 작업은 다음과 같습니다

<mx:Button top="0" cornerRadius="2" paddingLeft="0" paddingRight="0" leading="0" letterSpacing="0" paddingTop="0" paddingBottom="0" verticalGap="0" horizontalGap="0" textAlign="center" labelPlacement="bottom" icon="{MyIcon}" height="60" width="75" label="Elongated Label" fontSize="10" /> 

alt text

+0

내가 작동하지 않는 코드를 게시하면 더 나은 응답을 얻을 것이라고 생각합니다. – Tony

답변

1

전혀 간단하지 않습니다. 당신은 당신의 자신의 버튼을 만들어야합니다

,

public class Mybutton extends Button {...} 

재정에 createChildren과 IUITextField의 줄 바꿈을 설정 true로 라벨에 사용됩니다.

측정 값을 재정의하고 고유 한 행 메트릭을 사용하여 단추의 너비를 결정하십시오. 측정 값이 올바르면 단추가 올바르게 놓입니다.

+0

정확히 무엇을했는지. 나중에 답을 얻었습니다. 하지만 고마워. – CodeQrius

0

내가 순간 내 앞에 dev에 환경을 가지고 있지 않지만,이 라인을 따라 뭔가 작업을해야합니다 :

  1. 레이블의 truncateToFit 속성을 false로 설정하십시오. (또는 wordWrap을 true로 설정하여 TextField를 사용하십시오. 가능한 한 단어들을 하나로 묶어야합니다.)

나는 위에서 언급 한 것들 중 어느 것도 사용할 필요가 없으며 문제의 일부분에 대한 쉬운 해결책이기 때문에 아직 시도하지 않았기를 바랍니다. 코드가 없으면 패딩이 작동하지 않는 이유는 잘 모르겠지만 절사라는 단어와 관련이있을 수 있습니다.

Button을 사용하거나 아이콘의 소스를 지정하거나 개체의 labelPlacement 속성을 지정하여 텍스트를 배치 할 위치를 결정하는 것이 좋습니다.

EDIT : button에 wordWrap에 대한 속성이 없으므로 자동 기능이없는 콘텐츠를 기준으로 크기를 결정하는 것과 관련하여 Adobe Flex 포럼에서 권장하므로 가장 긴 단어를 찾아야하며 버튼의 너비를 조정합니다 (예 : creationComplete 이벤트에서). 그것은 수도, 패딩에 관해서는

creationComplete="event.target.width=returnMyWidth();" 

: 픽셀 비율 글꼴을 찾기 위해 실험하는 것은 나의 가장 좋은 것 (또는 당신은 모든 문자가함으로써 추정을 단순화 같은 공간을 주어 고정 폭 글꼴을 사용할 수 있습니다) 당신이 설정 한 커스텀 너비와 관련이 있거나, 이미지를 포함하는 것으로 채움을 자동으로 설정하는 것일 수도 있습니다. - 나는 잘 모르므로 누군가가 이것을 경험에 기반하여 설명 할 수 있다면 좋을 것입니다.

관련 문제